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>
<string name="url">http://avatar.csdn.net/4/0/7/1_zhuhai__yizhi.jpg</string>
運行就可以顯示了。
其中
<ImageView這里面的@{@string/url},@{@drawable/holder},@{@drawable/error}三個值,完全可以定義一個類變量來實現。
android:layout_width="100dp"
android:layout_height="100dp"
app:imageUrl="@{@string/url}"
app:placeHolder="@{@drawable/holder}"
app:error="@{@drawable/error}" />
注意一點在manifast.xml文件中需要配置相關屬性,否則圖片顯示不出來的。
本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。