我的问题是关于将图像加载到图像中使用Glide进行查看。我知道如何用Glide加载图像。但我想创建一个自定义ImageView,以便它可以使用Glide默认加载图像(为了使其更快并且默认情况下删除内存问题)。可能吗。如果是,那么如何?提前谢谢。
public class CustomImageView extends ImageView {
public CustomImageView(Context context) {
super(context);
}
///How to Over Ride Back Ground Attribute Sent by XML / Sent By Java Initialization
Glide.with(context).load(R.drawable.chains).into(this);
}
更新: 为了非常简单,我想在我的整个项目中使用我的自定义ImageView而不是普通的。因此默认会出现内存问题。在CustomImageView中,我想用Glide加载图像。我看起来像
public class CustomImageView extends ImageView {
public CustomImageView(Context context) {
super(context);
}
///How to Over Ride Back Ground Attribute Sent by XML / Sent By Java Initialization
@Override
public void setBackground(Drawable background) {
super.setBackground(background);
Glide.with(this.getContext()).load(background).into(this);
}
}
如何管理CustomImageView以使其与ImageView完全相同,而是使用Glide加载图像。
答案 0 :(得分:1)
尝试这样的事情:
public class CustomImageView extends android.support.v7.widget.AppCompatImageView {
public CustomImageView(Context context) {
super(context);
}
public CustomImageView(Context context, @Nullable AttributeSet set) {
super(context, set);
int[] attrs = {android.R.attr.background};
TypedArray typedArray = context.obtainStyledAttributes(set, attrs);
Drawable drawable = typedArray.getDrawable(0); // 0 is an index of attrs[]
if (drawable != null) {
setBackground(null);
Glide.with(context).load(typedArray.getResourceId(0, placeholder_resource_id)).into(this); // 0 is an index of attrs[]
}
typedArray.recycle();
}
}