package com.baidu.adfolder; import android.content.Context; import android.graphics.PixelFormat; import android.view.Gravity; import android.view.WindowManager; import android.view.WindowManager.LayoutParams; public class MyWindowManager { private static FloatWindow mWindow; private static LayoutParams mWindowParams; private static WindowManager mWindowManager; /** * create a float window * * @param context * must be the application's Context. */ public static void createBigWindow(Context context) { WindowManager windowManager = getWindowManager(context); int screenWidth = windowManager.getDefaultDisplay().getWidth(); int screenHeight = windowManager.getDefaultDisplay().getHeight(); if (mWindow == null) { mWindow = new FloatWindow(context); if (mWindowParams == null) { mWindowParams = new LayoutParams(); mWindowParams.x = screenWidth / 2 - FloatWindow.viewWidth / 2; mWindowParams.y = screenHeight / 2 - FloatWindow.viewHeight / 2; mWindowParams.type = LayoutParams.TYPE_PHONE; mWindowParams.format = PixelFormat.RGBA_8888; mWindowParams.gravity = Gravity.LEFT | Gravity.TOP; mWindowParams.width = FloatWindow.viewWidth; mWindowParams.height = FloatWindow.viewHeight; } windowManager.addView(mWindow, mWindowParams); } } /** * remove the float window from screen * * @param context * must be the application's Context. */ public static void removeBigWindow(Context context) { if (mWindow != null) { WindowManager windowManager = getWindowManager(context); windowManager.removeView(mWindow); mWindow = null; } } /** * is the float window on the desktop * * @return yet for true. */ public static boolean isWindowShowing() { return mWindow != null; } /** * WindowManager。 * * @param context * must be the application's Context. * @return WindowManager use to control the float window */ private static WindowManager getWindowManager(Context context) { if (mWindowManager == null) { mWindowManager = (WindowManager) context .getSystemService(Context.WINDOW_SERVICE); } return mWindowManager; } }