getImageResource()Android。这可能吗?

| 我已使用
setImageResource(R.drawable.icon1)
将图像设置为
ImageView
。 现在我的要求是找出为ѭ0设置的图像,并进行一些处理。 喜欢
if (imageView.getImageResource() == R.drawable.icon1) {
  //do some processing
else if (imageView.getImageResource() == R.drawable.icon2) {
  //do somethign else
else 
 //display
所以我想知道是否存在一个方法(AFAIK,它不存在),以及它是否不该如何跟踪为“ 0”设置的资源。 谢谢。 萨那     
已邀请:
        您假设因为放入了整数,所以可以取出整数,而integer5ѭ的工作方式不是这样。请参见ImageView#setImageResource()。这只是为您提供的一种便捷方法:Android在后台进行操作,正在查找Drawable资源(在大多数情况下,它是BitmapDrawable,但可以是任何类型),然后将该资源应用于ImageView作为位图对象(即仅图像数据-它不知道其原始\“资源ID \”以前是什么)。 最好的解决方案是跟踪您使用的最后一个资源ID:
imageView.setImageResource(R.drawable.image1);
this.mLastResourceId = R.drawable.image1;
// ...

// Later, when checking the resource:
if (this.mLastResourceId == R.drawable.image1) {
    // Do something
}
    
        您应该能够如下使用tag属性:
imageView.setImageResource(R.drawable.icon1);
imageView.setTag(Integer.valueOf(R.drawable.icon1));

// later

int drawable = (Integer) imageView.getTag();

switch(drawable) {

    case R.drawable.icon1:
         // do_something....
         break;

    case R.drawable.icon2:
         // do_something....
         break;

    ...
}
    
        如果可能的话,另一种选择是将ImageView子类化并将整数存储在重写的setImageResource()中。
public class MyImageView extends ImageView  {
  int rememberId = -1;
  @override void setImageResource(int resId){
    rememberId = resId;
  }  
  int getMyResId(){
    return rememberId;
  }
}
    
        
package com.widget;

import android.content.Context;
import android.util.AttributeSet;
import android.widget.ImageButton;

/**
 * custom star type imagebutton that can be obtain the background image resource
 * id.
 * 
 * </p> your layout xml resource might be like the following code: <br>
 * <view class=\"com.widget.StarButton\" <br>
 *      android:id=\"@+id/starButton\" <br>
 *      android:layout_width=\"wrap_content\" <br>
 *      android:layout_height=\"wrap_content\" <br>
 *      android:background=\"@android:color/background_light\" <br>
 *      android:paddingTop=\"10dp\" <br>
 *      android:src=\"@drawable/star\" /> <br>
 * 
 * @author Jeffen
 * 
 */
public class StarButton extends ImageButton {
private int mLastResourceId = -1;

public StarButton(Context context) {
    super(context);
}

public StarButton(Context context, AttributeSet attrs) {
    this(context, attrs, android.R.attr.imageButtonStyle);
}

public StarButton(Context context, AttributeSet attrs, int defStyle) {
    super(context, attrs, defStyle);
    setFocusable(true);
}

/**
 * set image resource and sync image resource id.
 */
@Override
public void setImageResource(int resId) {
    super.setImageResource(resId);

    setImageResourceId(resId);
}

public int getImageResourceId() {
    return mLastResourceId;
}

public void setImageResourceId(int resId) {
    mLastResourceId = resId;
}

}
    
        您应该能够使用Bundle并设置所需的任何属性。
Intent i = new Intent();      
Bundle extras = new Bundle();
      i.putExtra(\"prop\", \"value\");
    

要回复问题请先登录注册