0

我在一项活动中有 2 次观看。一个全屏 (View1) 和另一个小 (View2),只有 View1 的一半大小。

ACTION_UP我可以通过捕获 onTouch 侦听器 ( / ACTION_DOWN)将 View2 移动到 View1 上。但我想在 View1 上移动时显示 View2 的动画/拖动图像。任何关于如何实现这一点的建议,将不胜感激。

目前,为了将 View2 移动到四个角落,我将 Layout 参数设置为ACTION_UP.

代码::

      public boolean onTouch(View view, MotionEvent motionEvent) {
     RelativeLayout.LayoutParams layoutParams =(RelativeLayout.LayoutParams)view.getLayoutParams();
     int dx=0,dy=0;


         switch (motionEvent.getActionMasked()) {
             case MotionEvent.ACTION_DOWN:
              int x = (int) motionEvent.getX();
                  int y = (int) motionEvent.getY();
         dx = (int) motionEvent.getRawX()  - layoutParams.leftMargin;
                      dy = (int)motionEvent.getRawY() - layoutParams.topMargin;
                break;

            case MotionEvent.ACTION_MOVE:
                layoutParams.leftMargin = (int) ((int) motionEvent.getRawX()-dx);
                layoutParams.topMargin = (int) ((int)motionEvent.getRawY()- dy);
                view.setLayoutParams(layoutParams);             
                break;

        case MotionEvent.ACTION_UP:
             view.setLayoutParams(layoutParams);
                break;
         }
         return true;
     }
4

1 回答 1

0

使用ACTION_MOVE并通过检查指针xy值来计算偏移量。之后设置floating视图的重量或高度/宽度参数。

于 2013-09-10T10:09:50.803 回答