美文网首页工作生活
databinding中的ImageView与Glide结合使用

databinding中的ImageView与Glide结合使用

作者: 北铭 | 来源:发表于2019-07-01 10:47 被阅读0次

    public class ImageViewAttrAdapter {

    @BindingAdapter("android:src")
    public static void setSrc(ImageView view, Bitmap bitmap) {
        view.setImageBitmap(bitmap);
    }
    
    @BindingAdapter("android:src")
    public static void setSrc(ImageView view, int resId) {
        view.setImageResource(resId);
    }
    
    @BindingAdapter({"app:imageUrl", "app:placeHolder", "app:error"})
    public static void loadImage(ImageView imageView, String url, Drawable holderDrawable, Drawable errorDrawable) {
        Glide.with(imageView.getContext())
                .load(url)
                .placeholder(holderDrawable)
                .error(errorDrawable)
                .into(imageView);
    }
    

    }

    这里loadImage()绑定了多个属性,"app:imageUrl"、“app:placeHolder”、"app:error"属性。

    分别表示要加载的图片路径,占位图片,和加载出错时加载的图片。

    <layout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">

    <data class=".Custom">
    </data>
    
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical">
    
        <ImageView
            android:layout_width="100dp"
            android:layout_height="100dp"
            app:imageUrl="@{@string/url}"
            app:placeHolder="@{@drawable/holder}"
            app:error="@{@drawable/error}" />
    
    </LinearLayout>
    

    </layout>

    strings.xml中的内容:
    <string name="url">http://avatar.csdn.net/4/0/7/1_zhuhai__yizhi.jpg</string>

    在drawable-hdpi目录下有holder.png和error.png图片。
    运行就可以显示了。

    其中

        <ImageView
            android:layout_width="100dp"
            android:layout_height="100dp"
            app:imageUrl="@{@string/url}"
            app:placeHolder="@{@drawable/holder}"
            app:error="@{@drawable/error}" />
    

    这里面的@{@string/url},@{@drawable/holder},@{@drawable/error}三个值,完全可以定义一个类变量来实现。

    注意一点在manifast.xml文件中需要配置相关属性,否则图片显示不出来的。


    作者:zhuhai__yizhi
    来源:CSDN
    原文:https://blog.csdn.net/zhuhai__yizhi/article/details/52922092
    版权声明:本文为原创博主为zhuhai__yizhi,转载请附上博文链接!

    相关文章

      网友评论

        本文标题:databinding中的ImageView与Glide结合使用

        本文链接:https://www.haomeiwen.com/subject/hvowcctx.html