2011-09-09 20 views
1

私はアンドロイドアプリケーションを開発しています。ユーザーがレイアウトでイメージをタッチしドラッグすると、レイアウト全体を回転させる必要があります。私は相対レイアウトを使用しています。これで私は1つのイメージビューとドラッグボタンと1つのイメージを相対レイアウトの背景として持っています。ドラッグボタンが動いているときに相対レイアウト全体を回転させる必要があります。アンドロイドで全体の相対レイアウトを回転させる方法

回転アニメーションを試している間、そのタッチイベントが検出されないとすぐに実行されます。私のコードを以下のように追加しました

   anim = new RotateAnimation(0, -15f, Animation.RELATIVE_TO_SELF, 0f, 
       Animation.RELATIVE_TO_SELF, 0f); 

     anim.setInterpolator(new LinearInterpolator()); 

     anim.setDuration(700); 
     anim.setFillAfter(true); 

     anim.setAnimationListener(MainActivity.this); 


     rotationctrl.setOnTouchListener(new OnTouchListener() { 

      @Override 
      public boolean onTouch(View arg0, MotionEvent event) { 
     if (event.getAction() == MotionEvent.ACTION_DOWN) { 
     innerlayout.startAnimation(anim); 
     } 
     else if (event.getAction() == MotionEvent.ACTION_MOVE) { 
     } else if (event.getAction() == MotionEvent.ACTION_UP) { 
       } 

       return true; 
      } 
     }); 

ここでの問題は何ですか?私は間違いをしています..助けてください。

+0

「タッチイベントが検出されないとすぐに実行されます」という意味は – blessenm

+0

です。画像にタッチするとレイアウトが回転しますが、再び画像に触れるとタッチイベントが聞こえませんでした。 – deepa

答えて

1

Androidのアニメーションは、アニメーションを追加するときにUIレイアウトのピクセルのみをシフトします。アニメーションの後にレイアウトを実際に更新するには、アニメーションリスナーを実装して、手動でレイアウトを更新する必要があります。

レイアウトを手動で更新しないと、画像とその応答領域が表示されなくても元の位置になります。

関連する問題