Launcher知识的demo,手机管家小伙家与悬浮窗(二)

2015-07-20 17:30:30 · 作者: · 浏览: 29
Manager mWindowManager; private static LayoutInflater mInflater; private static SmallView smallWindow; private static WindowManager.LayoutParams smallWindowParams; static int screenWidth; static int screenHeight; private static ActivityManager mActivityManager; private static BigView bigView; private static LayoutParams bigWindowParams; private static RocketLauncher mRocketLauncher; private static LayoutParams mRocketWindowParams; public MyWindowManager(Context context) { mWindowManager = (WindowManager) context .getSystemService(Context.WINDOW_SERVICE); mInflater = (LayoutInflater) context .getSystemService(Context.LAYOUT_INFLATER_SERVICE); } /** * 判断是否是主页面 */ public static boolean isHome(Context context) { ActivityManager activityManager = (ActivityManager) context .getSystemService(Context.ACTIVITY_SERVICE); List runningTasks = activityManager.getRunningTasks(1); return getHome(context).contains( runningTasks.get(0).topActivity.getPackageName()); } /*** * 获得主页面 * * @return */ private static List getHome(Context context) { PackageManager packageManager = context.getPackageManager(); Intent intent = new Intent(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_HOME); List names = new ArrayList (); List list = packageManager.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY); if (list != null) { for (ResolveInfo info : list) { names.add(info.activityInfo.packageName); } } return names; } /** * 是否有窗口在屏幕上显示 * * @return */ public static boolean isWindowShowing() { return
smallWindow != null || bigView != null; } public static void removeSmallWindow(Context context) { if (smallWindow != null) { WindowManager windowManager = getWindowManager(context); windowManager.removeView(smallWindow); smallWindow = null; } } /** * 创建小的window */ // public void createSmallWindow() { // mWindowManager=getWindowManager(mContext); // screenWidth = mWindowManager.getDefaultDisplay().getWidth(); // screenHeight = mWindowManager.getDefaultDisplay().getHeight(); // if (smallView == null) { // smallView = new SmallView(mContext); // // // if (mSamllWindowParams == null) { // mSamllWindowParams = new LayoutParams(); // mSamllWindowParams.type = LayoutParams.TYPE_PHONE; // mSamllWindowParams.format = PixelFormat.RGBA_8888; // mSamllWindowParams.flags = LayoutParams.FLAG_NOT_FOCUSABLE // | LayoutParams.FLAG_NOT_TOUCH_MODAL; // mSamllWindowParams.gravity = Gravity.LEFT | Gravity.TOP; // mSamllWindowParams.width = smallView.getWidth(); // mSamllWindowParams.height = smallView.getHeight(); // mSamllWindowParams.x = screenWidth; // mSamllWindowParams.y = screenHeight/2; // } // smallView.setParams(mSamllWindowParams); // mWindowManager.addView(smallView, mSamllWindowParams); // } // // } public static void createSmallWindow(Context context) { WindowManager windowManager = getWindowManager(context); int screenWidth = windowManager.getDefaultDisplay().getWidth(); int screenHeight = windowManager.getDefaultDisplay().getHeight(); if (smallWindow == null) { smallWindow = new SmallView(context); if (smallWindowParams == null) { smallWindowParams = new LayoutParams(); smallWindowParams.type = LayoutParams.TYPE_SYSTEM_ALERT; smallWindowParams.format = PixelFormat.RGBA_8888; s