我希望获得之前已设置颜色的imageView
的颜色ID。
ImageView im = findViewById(R.id.imageView);
im.setBackgroundColor(R.color.green);
我该怎么做?
int colorId = im.getBackgroundColorResourceId() // how do I do this?
答案 0 :(得分:1)
ImageView
类中没有函数来检索ImageView
的颜色,因为它们不是设计为颜色而是设计为要显示的图像(因此名称ImageView
)。如果您希望能够检索ImageView
设置的颜色,您可以创建自己的自定义ImageView
类,并提供所需的功能。
import android.content.Context;
import android.util.AttributeSet;
import android.widget.ImageView;
public class CustomImageView extends ImageView {
int backgroundColor;
public CustomImageView(Context context) {
super(context);
}
public CustomImageView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public CustomImageView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
@Override
public void setBackgroundColor(int color) {
super.setBackgroundColor(color);
backgroundColor = color;
}
public int getBackgroundColor() {
return backgroundColor;
}
}
此自定义类CustomImageView
将覆盖函数setBackgroundColor(int color)
,并在此过程中将颜色存储到变量中,并设置背景颜色以便以后检索。函数getBackgroundColor()
可用于检索此变量。
这不是最简单的解决方案,我相信还有很多其他解决方案,但这个对我来说最有意义。