如何确定视图是否已旋转

时间:2015-09-16 19:29:59

标签: android android-view

正如标题所示,我想以编程方式了解给定的视图是否已经旋转。这是我的动画功能:

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中的箭头是否已旋转,如果是,则将箭头旋转到其实际位置。

1 个答案:

答案 0 :(得分:0)

您可以使用View.getRotation方法。

float rotation = v.findViewById(R.id.arrow_imageview).getRotation();

然后您可以确定该值是默认值(0.0f;未轮换)或不是(90.0f;已旋转)。

(注意:但是,我也更喜欢使用状态标志的另一种方法,如Saehun Sean Oh在他的评论中提及。我不认为他们需要是静态的但是要成为场成员,并在那里保持布尔状态。 )