0

アクティビティで 2 回のビューがありました。1 つは全画面表示 (View1) で、もう 1 つは小さい (View2) で、View1 の半分のサイズです。

ACTION_UPonTouch リスナー ( / )をキャッチすることで、View1 の上に View2 を移動できACTION_DOWNます。しかし、View1上を移動しながらView2のアニメーション/ドラッグ画像を表示したい。これを実装する方法についての提案をいただければ幸いです。

現在、View2 を四隅に移動するために、レイアウト パラメータを に設定してい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を使用し、ポインターxまたはy値をチェックしてオフセットを計算します。その後、floatingビューの重みまたは高さ/幅のパラメーターを設定します。

于 2013-09-10T10:09:50.803 に答える