cher(Context context) {
super(context);
LayoutInflater.from(context).inflate(R.layout.launcher, this);
mRocket = (ImageView) findViewById(R.id.launcher_img);
mRocketWith = mRocket.getLayoutParams().width;
mRocketHeight = mRocket.getLayoutParams().height;
}
/**
* 是否是发射状态
* @param isReadyLaunch
*/
public void updateRocketLaucher(boolean isReadyLaunch){
mRocket.setImageResource(isReadyLaunch?R.drawable.launcher_bg_fire:R.drawable.launcher_bg_hold);
}
}
package com.pzf.flow;
import java.lang.reflect.Field;
import android.content.Context;
import android.os.AsyncTask;
import android.os.SystemClock;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.view.WindowManager;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
/**
* 悬浮框类
* 1.显示内存使用情况
* 2.移动悬浮框,位置改变 OnTouch();
* 3.移动小悬浮框,变成小火箭 updateView() updateStatus();
* 4.移动到发射台,小火箭发射 LaunchTask
* @author pangzf
* @time 2014年10月11日 上午11:23:48
*/
public class SmallView extends LinearLayout {
private Context mContext;
private int statusBarHeight;
private float mXInView;
private float mYInView;
private float mXDownInScreen;
private float mYDownInScreen;
private float mXInScreen;
private float mYInScreen;
/**
* 小悬浮窗的参数
*/
private WindowManager.LayoutParams mParams;
public int viewWidth;
public int viewHeight;
private WindowManager mWindowManager;
private LinearLayout view;
private boolean isPressed;
private ImageView mIvRocket;
private int rocketWidth;
private int rocketHeight;
public SmallView(Context context) {
super(context);
this.mContext=context;
mWindowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
LayoutInflater.from(context).inflate(R.layout.small, this);
view = (LinearLayout) findViewById(R.id.ll_small_main);
viewWidth = view.getLayoutParams().width;
viewHeight = view.getLayoutParams().height;
mIvRocket = (ImageView) findViewById(R.id.rocket_img);
rocketWidth = mIvRocket.getLayoutParams().width;
rocketHeight = mIvRocket.getLayoutParams().height;
TextView mTvPercent = (TextView) view
.findViewById(R.id.tv_small_percent);
mTvPercent.setText(MyWindowManager.getUserPercent(context));
}
/**
* 将小悬浮窗的参数传入,用于更新小悬浮窗的位置。
*
* @param params
* 小悬浮窗的参数
*/
public void setParams(WindowManager.LayoutParams params) {
mParams = params;
}
// 做单击处理和移动small位置
@Override
public boolean onTouchEvent(MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
isPressed=true;
mXInView = event.getX();
mYInView = event.getY();
mXDownInScreen = event.getRawX();
mYDownInScreen = event.getRawY() - getStatusBarHeight();
mXInScreen = event.getRawX();
mYInScreen = event.getRawY()-getStatusBarHeight();
break;
case MotionEvent.ACTION_MOVE:
//移动small
mXInScreen=event.getRawX();
mYInScreen=event.getRawY() - getStatusBarHeight();
updateStatus();
updateView();
break;
case MotionEvent.ACTION_UP:
isPressed=false;
if(MyWindowManager.isReadyToLaunch()){
//