2016-11-09 8 views
1

私は、マニフェストのように常に設定されているように、横向きの向きを常に保つ必要があるアクティビティを持っています。しかし、デバイス内部のビューを回転させることで、デバイスの物理的な向きの変化に対応してほしい。 加速度計を使用して向きの変化を検出し、必要に応じてビューを回転させます。Android - レイアウトを回転してビューのタッチ機能を維持する

次のレイアウトを回転すると、回転したように見えますが、ビューは新しい位置でクリックできません。しかし、私が彼らの古い位置をクリックすると、実際にクリックが行われます。

ビューを回転させて回転させるだけでなく、ビューを回転させる方法を実装しますか?

SeekBar text 
-----------▢------ 

SeekBar text 
-----▢------------ 

▢ Checkbox 
▢ Checkbox 
▢ Checkbox 

_______________ 
| button | 
---------------- 

これは私のコードそれだけで画面上のピクセルを移動するので、OnClickListenerがそれでアニメーション化されませんので、あなたがRotateAnimationを使用するカントそのために

view.clearAnimation(); 
RotateAnimation anim = new RotateAnimation(startDegrees, endDegrees, 
     Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 
     0.5f); 
anim.setDuration(400); 
anim.setFillBefore(true); 
anim.setFillEnabled(true); 
anim.setFillAfter(true); 
view.startAnimation(anim); 
+0

ザッツ面白い、代わりにアニメーションの、あなたは直接、デバイスの向きを設定することができます。不正な状態の例外を引き起こして方向を変えるために推奨されるコードを探します。 –

+0

上記の仕様を満たすために私は何ができるのですか? – Anonymous

+0

その場合、タッチを割り当てたり聞いたりするコードをアップロードできますか –

答えて

0

です。代わりにViewPropertyAnimator(またはObjectAnimator)を使用して、OnClickListenerが新しい位置に動作するはずです:

HERESに例をViewPropertyAnimator使用:

view.animate().rotation(endDegrees).setDuration(400); // or .rotationBy(endDegrees) 
関連する問題