2015-12-02 37 views
1

我想检查一个带有R.drawable项的矩阵是否包含当前的ImageView。我如何将ImageView与R.drawable进行比较?

我的代码一小部分是:

 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 
     } 

回答

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 
    } 
0

如果你想通过自己绘制资源ID来识别imageviews,你可以利用该视图的标签。

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

你可以通过调用((int)imageview.getTag())来获得该id。