我有一项活动必须始终保持横向方向,因此它在清单中设置如此。但是我希望它通过旋转其中的视图来响应设备的物理方向变化。 我正在使用加速度计检测方向变化并根据需要旋转视图。
当我旋转以下布局时,它会显示为旋转,但视图在新位置无法点击。但是,如果我点击旧位置,则确实会执行点击。
如何实现这一点,以便视图被INDEED旋转而不仅仅是旋转?
SeekBar text
-----------▢------
SeekBar text
-----▢------------
▢ Checkbox
▢ Checkbox
▢ Checkbox
_______________
| button |
----------------
这是我的代码
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)
为此您无法使用RotateAnimation,因为它只移动屏幕上的像素,因此OnClickListener不会使用它进行动画处理。请改用ViewPropertyAnimator(或ObjectAnimator),OnClickListener应该在新位置上工作:
以下是使用ViewPropertyAnimator的示例:
view.animate().rotation(endDegrees).setDuration(400); // or .rotationBy(endDegrees)