检查/比较图像按钮资源

时间:2014-09-22 18:58:44

标签: android image resources

我需要知道如何检查如何在图像按钮上比较或检查图像资源

首先我设置了按钮。

button1 = (ImageButton) findViewById(R.id.ib1);
button1.setImageResource(R.drawable.smiley);
if( currentTime%2==0 ) {
    button1.setImageResource(R.drawable.smiley);
}
else {
    button1.setImageResource(R.drawable.smileyhit);
}

稍后我需要检查按钮的图像资源是否是笑脸可绘制并增加分数。

类似

if( button1.getImageResource() == R.drawable.smiley ) {
score = score + 1;
}

我该怎么做才能比较呢?我不想使用标签。请帮帮我!

3 个答案:

答案 0 :(得分:2)

使用ImageButton.setTagImageButton.getTag来识别当前位于ImageButton背景中的图片:

if( currentTime%2==0 ) {
    button1.setImageResource(R.drawable.smiley);
    button1.setTag(R.drawable.smiley);
}
else {
     button1.setImageResource(R.drawable.smileyhit);
     button1.setTag(R.drawable.smileyhit);
}

使用button1.getTag检查当前图片:

if(Integer.parseInt(button1.getTag().toString()) == R.drawable.smiley ) {
 score = score + 1;
}

答案 1 :(得分:0)

使用setTag和getTag可以轻松区分图像。

    if( currentTime%2==0 ) {
        button1.setImageResource(R.drawable.smiley);
        button1.setTag("smiley");
    }
    else {
        button1.setImageResource(R.drawable.smileyhit);
        button1.setTag("smileyhit");
    }

if(button1.getTag().toString().equalsIgnoreCase("smiley")){
score = score + 1; 
}

答案 2 :(得分:0)

为每个按钮维护一个包含currentTime%2==0的数组。由于UI在应用程序的生命周期中的几个不同点重新创建,因此不应该依赖UI来检索应用程序的状态。确定应用状态的所有数据都应与用户界面分开。

修改 Okie ..正如你所说,你有更多的图像,我仍然会通过数组或列表,而不是依赖于UI来获取数据。我的方法将如下,

  1. 为每个具有constants值的图片资源创建Int  例如:public static final int image1=1;
  2. 为图像数量创建int数组,并使用初始值维护它们。
  3. 每次更改图像都会相应更改相应的数组元素。
  4. 要找出使用的资源,请检查相应的数组元素。
  5. 恢复UI(如onResume)时,使用数组设置相应的可绘制资源。