正如标题所示,我想以编程方式了解给定的视图是否已经旋转。这是我的动画功能:
public static void AnimateArrowDown(View v)
{
RotateAnimation anim = new RotateAnimation(0.0f, 90.0f, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
anim.setInterpolator(new LinearInterpolator());
anim.setDuration(200);
anim.setFillAfter(true);
v.findViewById(R.id.arrow_imageview).startAnimation(anim);
}
我在ListView中向右下方设置了一个箭头。我的问题是当视图重绘为某些列表元素时,先前为另一个列表项旋转的箭头将传递给此新列表项。因此,我想确定ListView中的箭头是否已旋转,如果是,则将箭头旋转到其实际位置。
答案 0 :(得分:0)
您可以使用View.getRotation
方法。
float rotation = v.findViewById(R.id.arrow_imageview).getRotation();
然后您可以确定该值是默认值(0.0f
;未轮换)或不是(90.0f
;已旋转)。
(注意:但是,我也更喜欢使用状态标志的另一种方法,如Saehun Sean Oh在他的评论中提及。我不认为他们需要是静态的但是要成为场成员,并在那里保持布尔状态。 )