package com.withiter.quhao.view;
import android.content.Context;
import android.view.MotionEvent;
import android.view.WindowManager;
import android.widget.ListView;
import com.withiter.quhao.QHClientApplication;
import com.withiter.quhao.util.QuhaoLog;
public class CommonFloatView extends ListView {
private float mTouchStartX;
private float mTouchStartY;
private float x;
private float y;
private static final String TAG = CommonFloatView.class.getName();
private WindowManager wm = (WindowManager) getContext()
.getApplicationContext().getSystemService("window");
// 此wmParams为获取的全局变量,用以保存悬浮窗口的属性
private WindowManager.LayoutParams wmParams = ((QHClientApplication) getContext()
.getApplicationContext()).getMywmParams();
public CommonFloatView(Context context) {
super(context);
// TODO Auto-generated constructor stub
}
// @Override
// public boolean onTouchEvent(MotionEvent event) {
// return move(event);
// }
private boolean move(MotionEvent event){
// getRawX()获取相对屏幕的坐标,即以屏幕左上角为原点
x = event.getRawX();
y = event.getRawY() - 25; // 25是系统状态栏的高度
QuhaoLog.i(TAG, "currX" + x + "====currY" + y);
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
// getX()获取相对View的坐标,即以此View左上角为原点
mTouchStartX = event.getX();
mTouchStartY = event.getY();
QuhaoLog.i(TAG, "startX" + mTouchStartX + "====startY"
+ mTouchStartY);
break;
case MotionEvent.ACTION_MOVE:
updateViewPosition();
break;
case MotionEvent.ACTION_UP:
updateViewPosition();
mTouchStartX = mTouchStartY = 0;
break;
}
return true;
}
private void updateViewPosition() {
// 更新浮动窗口位置参数,x是鼠标在屏幕的位置,mTouchStartX是鼠标在图片的位置
wmParams.x = (int) (x - mTouchStartX);
wmParams.y = (int) (y - mTouchStartY);
wm.updateViewLayout(this, wmParams);
QuhaoLog.i(TAG, "wmParams.x:"+wmParams.x);
QuhaoLog.i(TAG, "wmParams.y"+wmParams.y);
}
}