databinding中的ImageView与Glide结合使用

compile 'com.github.bumptech.glide:glide:3.7.0'               加入glide支持
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文件中需要配置相关属性,否则图片显示不出来的。

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值