在ImageView android中获取相关图像(Drawable)

the*_*sic 10 android imageview

我将图像设置为android中的imageview控件:

iv.setImageResource(R.drawable.image1);
Run Code Online (Sandbox Code Playgroud)

我想得到这个相关的Drawable,看起来像:

Drawable myDrawable = iv.getImageResource(); //wrong
Run Code Online (Sandbox Code Playgroud)

谢谢!

A.J*_*.J. 37

你可以得到像drawable一样

Drawable myDrawable = iv.getDrawable();
Run Code Online (Sandbox Code Playgroud)

您可以将它与可绘制资源进行比较

if(iv.getDrawable()==getResources().getDrawable(R.drawable.image1)){
    //do work here
}
Run Code Online (Sandbox Code Playgroud)

  • 它对我来说也不起作用..但它有复选标记. (3认同)

nah*_*ang 8

首先定义Drawable.

Drawable myDrawable = getResources().getDrawable(R.drawable.image1);
iv.setImageDrawable(myDrawable);
Run Code Online (Sandbox Code Playgroud)


Ano*_*age 8

不幸的是,没有getImageResource()getDrawableId().但是,我使用ImageView标签创建了一个简单的解决方法.

在onCreate()中:

imageView0 = (ImageView) findViewById(R.id.imageView0);
imageView1 = (ImageView) findViewById(R.id.imageView1);
imageView2 = (ImageView) findViewById(R.id.imageView2);

imageView0.setTag(R.drawable.apple);
imageView1.setTag(R.drawable.banana);
imageView2.setTag(R.drawable.cereal);
Run Code Online (Sandbox Code Playgroud)

然后,如果您愿意,可以创建一个简单的函数来获取可绘制的id:

private int getImageResource(ImageView iv) {
    return (Integer) iv.getTag();
}
Run Code Online (Sandbox Code Playgroud)

我希望这对你有所帮助,它确保我的工作更轻松.


Bal*_*i.K 6

使用 Drawable drawable=imageview.getDrawable();