我有一个相机应用程序。每当设备方向从纵向更改为横向时,反之亦然,我想将 ImageView 动画到他身边。
这是我的代码,动画只在第一组完成,如果方向改变的事件再次发生,什么也不会发生。
这是代码:
@Override
public void onSensorChanged(SensorEvent event) {
if (event.values[1]<6.5 && event.values[1]>-6.5) {
if (orientation!=1) { // Portrait
animation = new RotateAnimation(0,90,RotateAnimation.RELATIVE_TO_SELF, 0.5f, RotateAnimation.RELATIVE_TO_SELF, 0.5f);
animation.setFillAfter(true);
animation.setFillEnabled(true);
animation.setDuration(0);
imageView.setAnimation(animation);
}
orientation=1;
} else {
if (orientation!=0) { // Landscape
animation = new RotateAnimation(0,270,RotateAnimation.RELATIVE_TO_SELF, 0.5f, RotateAnimation.RELATIVE_TO_SELF, 0.5f);
animation.setFillAfter(true);
animation.setFillEnabled(true);
animation.setDuration(0);
imageView.setAnimation(animation);
}
orientation=0;
}
}
为什么会发生这种情况,我如何确保每当发生该事件时,我的动画将与其他旋转参数一起应用于我的 imageView,而不是使用相同的角度?