Manager = getWindowManager(context); windowManager.removeView(bigView); bigView = null; } } // 火箭--------------- /** * 创建小火箭 * * @param context */ // public static void createRocketWindow(Context context) { // WindowManager windowManager = getWindowManager(context); // int screenWidth = windowManager.getDefaultDisplay().getWidth(); // int screenHeight = windowManager.getDefaultDisplay().getHeight(); // if (mRocketLauncher == null) { // mRocketLauncher = new RocketLauncher(context); // if (mRocketWindowParams == null) { // mRocketWindowParams = new LayoutParams(); // mRocketWindowParams.x = screenWidth / 2 - mRocketLauncher.mRocketWith/2; // mRocketWindowParams.y = screenHeight - mRocketLauncher.mRocketHeight; // // mRocketWindowParams.type = LayoutParams.TYPE_PHONE; // mRocketWindowParams.format = PixelFormat.RGBA_8888; // mRocketWindowParams.flags = LayoutParams.FLAG_NOT_TOUCH_MODAL // | LayoutParams.FLAG_NOT_FOCUSABLE; // mRocketWindowParams.gravity = Gravity.LEFT | Gravity.TOP; // mRocketWindowParams.width = mRocketLauncher.mRocketWith; // mRocketWindowParams.height = mRocketLauncher.mRocketHeight; // } // windowManager.addView(mRocketLauncher, mRocketWindowParams); // } // } // /** * 创建一个火箭发射台,位置为屏幕底部。 */ public static void createRocketWindow(Context context) { WindowManager windowManager = getWindowManager(context); int screenWidth = windowManager.getDefaultDisplay().getWidth(); int screenHeight = windowManager.getDefaultDisplay().getHeight(); if (mRocketLauncher == null) { mRocketLauncher = new RocketLauncher(context); if (mRocketWindowParams == null) { mRocketWindowParams = new LayoutParams(); mRocketWindowParams.x = screenWidth / 2 - RocketLauncher.mRocketWith / 2; mRocketWindowParams.y = screenHeight - RocketLauncher.mRocketHeight; mRocketWindowParams.type = LayoutParams.TYPE_PHONE; mRocketWindowParams.format = PixelFormat.RGBA_8888; mRocketWindowParams.gravity = Gravity.LEFT | Gravity.TOP; mRocketWindowParams.width = RocketLauncher.mRocketWith; mRocketWindowParams.height = RocketLauncher.mRocketHeight; } windowManager.addView(mRocketLauncher, mRocketWindowParams); } } /** * 移除小火箭l * * @param context */ public static void removeRocketWindow(Context context) { WindowManager windowManager = getWindowManager(context); if (mRocketLauncher != null) { windowManager.removeView(mRocketLauncher); mRocketLauncher = null; } } /** * 更新火箭发射台的显示状态。 */ public static void updateLauncher() { if (mRocketLauncher != null) { mRocketLauncher.updateRocketLaucher(isReadyToLaunch()); } } /** * 判断小火箭是否准备好发射了。 * * @return 当火箭被发到发射台上返回true,否则返回false。 */ public static boolean isReadyToLaunch() { if ((smallWindowParams.x > mRocketWindowParams.x && smallWindowParams.x + smallWindowParams.width < mRocketWindowParams.x + mRocketWindowParams.width) && (smallWindowParams.y + smallWindowParams.height > mRocketWindowParams.y)) { return true; } return false; } }
package com.pzf.flow;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
/**
* 小火箭的launcer的布局类,此处需要注意mRocketWith,mRocketHeight这两个字段需要public供外界使用,因为在你移动悬浮框的时候需要显示小火箭,这时候需要小火箭的宽和高
* @author pangzf
* @time 2014年10月11日 上午11:22:32
*/
public class RocketLauncher extends LinearLayout {
public static int mRocketWith;
public static int mRocketHeight;
private ImageView mRocket;
public RocketLaun