android 之WindowManager.LayoutParams

在代码里动态添加布局view文件

private LayoutParams windowParams = null;
 private WindowManager windowManager = null;
 
 private void startDrag() {
  windowParams = new WindowManager.LayoutParams();
  
  windowParams.gravity = Gravity.TOP | Gravity.LEFT;
  windowParams.height = WindowManager.LayoutParams.WRAP_CONTENT;
  windowParams.width = WindowManager.LayoutParams.MATCH_PARENT;
  windowParams.x = dragItemView.getLeft() + 10;
  windowParams.y = dragItemView.getTop() + 100;
  windowParams.alpha = 0.8f;
  windowParams.flags = WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS | 0x00000010;
  
  windowManager = (WindowManager) MainActivity.this
    .getSystemService(Context.WINDOW_SERVICE);
  
  windowManager.addView(dragView, windowParams);
  
 }

 

触发事件,更新添加的视图

private void drag(int x, int y) {
  windowParams.x = x + dragItemView.getLeft() + 10;
  windowParams.y = y + dragItemView.getTop() + 100;
  windowManager.updateViewLayout(dragView, windowParams);
 }

 

清理添加的视图

private void stopDrag() {
  if (dragView != null) {
   windowManager.removeView(dragView);
   dragView = null;
  }
 }

posted on 2013-05-30 14:02  yujian_bcq  阅读(523)  评论(0编辑  收藏  举报

导航