在桌面添加一个控件,并动态拖动它
代码实例
WindowManager mWindowManager = (WindowManager) getSystemService(WINDOW_SERVICE );
Button mFloatingButton = new Button(this );
mFloatingButton .setText("windowManager" );
LayoutParams mLayoutParams = new WindowManager.LayoutParams(
LayoutParams. WRAP_CONTENT , LayoutParams.WRAP_CONTENT , 0, 0,
PixelFormat. TRANSPARENT );
mLayoutParams .flags = LayoutParams.FLAG_NOT_TOUCH_MODAL
| LayoutParams.FLAG_NOT_FOCUSABLE
| LayoutParams.FLAG_SHOW_WHEN_LOCKED ;
mLayoutParams .gravity = Gravity. LEFT | Gravity.TOP ;
mLayoutParams .x = 100;
mLayoutParams .y = 300;
mWindowManager .addView(mFloatingButton , mLayoutParams);
mFloatingButton .setOnTouchListener( new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event ) {
int rawX = ( int) event .getRawX();
int rawY = ( int) event .getRawY();
switch (event .getAction()) {
case MotionEvent.ACTION_MOVE :
mLayoutParams .x = rawX -100;
mLayoutParams .y = rawY -100;
mWindowManager .updateViewLayout(mFloatingButton , mLayoutParams );
break ;
default :
break ;
}
return false ;
}
});