我怎样才能将ImageView与R.drawable进行比较?

时间:2015-12-02 16:16:24

标签: android android-imageview

我想检查一个带有R.drawable项目的矩阵是否包含当前的ImageView。

我的代码的一小部分是:

        Integer[] redColor = { R.drawable.red_circle_, R.drawable.red_cross_};

        Random random = new Random();
        int randomItem = random.nextInt( redColor.length );

        item1ImageView.setImageResource( redColor[ randomItem1 ] );

        if ( ( Arrays.asList( redColor ).contains( item1ImageView.getId() )
        {
            //do something
        }

2 个答案:

答案 0 :(得分:0)

如果您想通过可绘制的资源ID识别图像视图,则可以使用视图的标记。

在为给定视图调用setImageResource之后,使用相同的资源ID设置该视图标记(imageview.setTag(R.drawable.asset_id))。

您可以通过转换调用((int)imageview.getTag())来获取该ID。

答案 1 :(得分:0)

简单的方法是:

    Integer[] redColor = { R.drawable.red_circle_, R.drawable.red_cross_};

    Drawable.ConstantState[] redColorConstantState = new Drawable.ConstantState[ 3 ];

    for ( int counter = 0; counter < redColor.length; counter++ )
    {
        redColorConstantState[ counter ] = getResources().getDrawable( redColor[ counter ] ).getConstantState();
    }

    Random random = new Random();
    int randomItem = random.nextInt( redColor.length );

    item1ImageView.setImageResource( redColor[ randomItem1 ] );

    if ( ( Arrays.asList( redColorConstantState ).contains( item1ImageView.getDrawable().getConstantState() )
    {
        //do something
    }