Drawableにある画像ではなく、サーバーにある画像をImageViewかつDataBindで表示したいことあると思います。 いくつか方法ありますが、簡単な方法を紹介します。
どうやったら出来るのか?
BindingAdapterで出来ます。
プロジェクトのどこかにBindingAdapter.ktなどそれっぽい名前のファイルを置きます。
そして以下ように書きます。
@BindingAdapter("imageUrl") fun setImageUrl(imageView: ImageView, url: String) { val requestOptions: RequestOptions = RequestOptions() .dontAnimate() .diskCacheStrategy(DiskCacheStrategy.AUTOMATIC) Glide.with(imageView.context) .load(url) .apply(requestOptions) .into(imageView) }
あとは、xml側では以下のように指定します。
<layout> <data> <variable name="imageUrl" type="String" /> </data> <LinearLayout ... /> <ImageView android:layout_width="200dp" android:layout_height="200dp" app:imageUrl="@{imageUrl}"> </LinearLayout> </layout>
👍 以上です。