工作生活

databinding中的ImageView与Glide结合使用

2019-07-01  本文已影响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,转载请附上博文链接!

上一篇下一篇

猜你喜欢

热点阅读