我使用反射的方法获取ImageView的id, 也可以使用img.setTag(id),但是如果有多个的话,每次都需要设置setTag,太麻烦了。
下面这篇文章介绍了原生ImageView反射方法
转发如何获取已加载在ImageView中的图片ID
但是我导入的是AppCompatActivity,imageView反射的是V7包,无法适用
1.查看源码
AppCompatImageView 这个是V7包的ImageView,可以看到有两个私有属性。
AppCompatImageView.class
private final AppCompatBackgroundHelper mBackgroundTintHelper;
private final AppCompatImageHelper mImageHelper;
public void setImageResource(@DrawableRes int resId) {
if (this.mImageHelper != null) {
this.mImageHelper.setImageResource(resId);
}
}
public void setBackgroundResource(@DrawableRes int resId) {
super.setBackgroundResource(resId);
if (this.mBackgroundTintHelper != null) {
this.mBackgroundTintHelper.onSetBackgroundResource(resId);
}
}