Android - 旋转布局并保持视图的触摸功能

时间:2016-11-09 23:32:47

标签: android android-animation

我有一项活动必须始终保持横向方向,因此它在清单中设置如此。但是我希望它通过旋转其中的视图来响应设备的物理方向变化。 我正在使用加速度计检测方向变化并根据需要旋转视图。

当我旋转以下布局时,它会显示为旋转,但视图在新位置无法点击。但是,如果我点击旧位置,则确实会执行点击。

如何实现这一点,以便视图被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);

1 个答案:

答案 0 :(得分:0)

为此您无法使用RotateAnimation,因为它只移动屏幕上的像素,因此OnClickListener不会使用它进行动画处理。请改用ViewPropertyAnimator(或ObjectAnimator),OnClickListener应该在新位置上工作:

以下是使用ViewPropertyAnimator的示例:

view.animate().rotation(endDegrees).setDuration(400);  // or .rotationBy(endDegrees)