2016-11-09 40 views
1

我有一个必须始终保持横向方向的活动,因此它在清单中就像那样设置。不过,我希望它通过旋转视图内的视图来响应设备的物理方向更改。 我正在使用加速计检测方向更改,并根据需要旋转视图。Android - 旋转布局并保持视图的触摸功能

当我旋转下面的布局时,它出现旋转,但视图不能在它们的新位置点击。但是,如果我点击他们的旧位置,然后确实执行点击。

我该如何实现这个功能,以便视图旋转而不仅仅是旋转?

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

问题是我能做些什么来符合上述规范......如果他们是可爱的,就不要这样做。 – Anonymous

+0

在这种情况下,您可以上传代码分配和侦听触摸 –

回答

0

对于您不能使用RotateAnimation因为它只移动屏幕上的像素,所以一个OnClickListener不以动画。使用ViewPropertyAnimator

这里有一个例子:使用ViewPropertyAnimator(或ObjectAnimator),而不是和你的OnClickListener应在新的岗位工作

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