Android 比较ImageView上的可绘图项

Android 比较ImageView上的可绘图项,android,android-drawable,Android,Android Drawable,我正在尝试创建一个单臂Bandit应用程序。 我创建了一个动画xml文件来浏览多个图像。单击按钮时,动画停止 我的问题是如何将一个动画停止的图片与另一个动画停止的图片进行比较?到目前为止,我已经尝试过这样的方法: if(wheel1.getBackground().getConstantState().equals(wheel2.getBackground().getConstantState())) matches++; 非常感谢您的帮助。您必须使用.animationStart() 只要

我正在尝试创建一个单臂Bandit应用程序。 我创建了一个动画xml文件来浏览多个图像。单击按钮时,动画停止

我的问题是如何将一个动画停止的图片与另一个动画停止的图片进行比较?到目前为止,我已经尝试过这样的方法:

if(wheel1.getBackground().getConstantState().equals(wheel2.getBackground().getConstantState())) matches++;

非常感谢您的帮助。

您必须使用
.animationStart()


只要使用
.onAnimationStop()

它就会自动触发事件

A
视图
不应维护应用程序逻辑,控制器(您的托管
活动
片段
)应

也就是说,要实现您想要的功能,请使用
View.setTag()
将每个
视图的逻辑描述应用于它。
然后在停止动画时,循环浏览您拥有的所有
视图,并获取它们在屏幕上的位置,获取在bandit机器的每一列中主要可见的
视图,并比较它们的标记(
View.getTag()

例如,如果项目垂直设置动画,请使用下面的方法确定bandit停止的位置

//the area where to compare views
int BOUND_TOP, BOUNT_DOWN;

//your content view
ViewGroup rootLayout;

//method to get information about what is visible
public List<Object> getVisibleViewTags() {
    List<Object> list = new LinkedList<>();

    int count = rootLayout.getChildCount(); 
    for (int pos = 0; pos < count; pos++) {
        View child = rootLayout.getChildAt(pos);
        float translationY = child.getTranslationY();
        if (translationY > BOUND_TOP && translationY < BOUND_DOWN) {
            list.add(child.getTag());
        }
    }

    return list;
}


对不起,我没说清楚。我没有任何关于如何停止或启动动画的问题。我想在动画停止时比较ImageView的图片,看看它们是否相同。谢谢你的回复。这似乎是一个可怕的方法,但我想如果没有其他方法,它将不得不这样做。这是否能够在动画的所有图片上放置标签,即使是当前不可见的图片?只要它们存在,是的。无论他们现在是否可见,我如何知道哪个是哪个?例如,我如何知道列表中的哪个视图是苹果的图片,以便我可以在其上放置适当的标记?当您从xml展开布局时,可以为视图分配id。如果以编程方式对其进行充气,那么您知道可以为ImageView中使用的可绘图项分配哪些ID?无论如何,我找到了一个解决方案,使用BitmapDrawable来比较我的图片。
view.setTag("view_apples");
view.setTag("view_bananas");