使用Glide

时间:2018-04-16 07:06:53

标签: android android-layout imageview android-glide

我的问题是关于将图像加载到图像中使用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加载图像。

1 个答案:

答案 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();
    }
}