public void createTestWindow(final View layout){
int lastviewX, lastviewY;
final int [] lastviewXY=new int[2];
final WindowManager.LayoutParams wmParams;
mWindowManager = (WindowManager) getApplication().getSystemService(
getApplication().WINDOW_SERVICE);
wmParams = new WindowManager.LayoutParams();
wmParams.type = WindowManager.LayoutParams.TYPE_PHONE;
// wmParams.format = PixelFormat.RGBA_8888;
wmParams.flags =WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;
// wmParams.gravity = Gravity.CENTER_HORIZONTAL;
wmParams.gravity = Gravity.LEFT | Gravity.TOP;
wmParams.x =0;
wmParams.y =0;
// 设置悬浮窗口长宽数据
wmParams.width = WindowManager.LayoutParams.WRAP_CONTENT;
wmParams.height = WindowManager.LayoutParams.WRAP_CONTENT;
LayoutInflater inflater = LayoutInflater.from(getApplication());
mWindowManager.addView(layout, wmParams);
layout.measure(View.MeasureSpec.makeMeasureSpec(0,
View.MeasureSpec.UNSPECIFIED), View.MeasureSpec
.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED));
layout.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
Log.i("event", event.getAction()+"");
if (event.getAction() == MotionEvent.ACTION_MOVE) {
// getRawX是触摸位置相对于屏幕的坐标,getX是相对于按钮的坐标
wmParams.x =(int) event.getRawX()-(lastX-lastviewXY[0]);
wmParams.y =(int) event.getRawY()-(lastY-lastviewXY[1]);
if(wmParams.x==-1){
return true;
}
mWindowManager.updateViewLayout(layout, wmParams);
}
if(event.getAction() == MotionEvent.ACTION_DOWN){
lastX = (int) event.getRawX();//
lastY = (int) event.getRawY();
layout.getLocationOnScreen(lastviewXY);
}
return true;
}
});public void createTestWindow(final View layout){
int lastviewX, lastviewY;
final int [] lastviewXY=new int[2];
final WindowManager.LayoutParams wmParams;
mWindowManager = (WindowManager) getApplication().getSystemService(
getApplication().WINDOW_SERVICE);
wmParams = new WindowManager.LayoutParams();
wmParams.type = WindowManager.LayoutParams.TYPE_PHONE;
// wmParams.format = PixelFormat.RGBA_8888;
wmParams.flags =WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;
// wmParams.gravity = Gravity.CENTER_HORIZONTAL;
wmParams.gravity = Gravity.LEFT | Gravity.TOP;
wmParams.x =0;
wmParams.y =0;
// 设置悬浮窗口长宽数据
wmParams.width = WindowManager.LayoutParams.WRAP_CONTENT;
wmParams.height = WindowManager.LayoutParams.WRAP_CONTENT;
LayoutInflater inflater = LayoutInflater.from(getApplication());
mWindowManager.addView(layout, wmParams);
layout.measure(View.MeasureSpec.makeMeasureSpec(0,
View.MeasureSpec.UNSPECIFIED), View.MeasureSpec
.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED));
layout.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
Log.i("event", event.getAction()+"");
if (event.getAction() == MotionEvent.ACTION_MOVE) {
// getRawX是触摸位置相对于屏幕的坐标,getX是相对于按钮的坐标
wmParams.x =(int) event.getRawX()-(lastX-lastviewXY[0]);
wmParams.y =(int) event.getRawY()-(lastY-lastviewXY[1]);
if(wmParams.x==-1){
return true;
}
mWindowManager.updateViewLayout(layout, wmParams);
}
if(event.getAction() == MotionEvent.ACTION_DOWN){
lastX = (int) event.getRawX();//
lastY = (int) event.getRawY();
layout.getLocationOnScreen(lastviewXY);
}
return true;
}
});
}
}