Mik*_*ike 9 android android-bitmap android-databinding
我有一个位图内存(通过专有的TCP/IP协议栈从服务器应用程序下载),我想绑定到ImageView.我可以使用setImageBitmap手动绑定图像; 如果我使用数据绑定库绑定其他控件,则不会显示图像.如何使用数据绑定库绑定到包含Bitmap对象的属性?
Com*_*are 26
您应该可以使用以下内容执行此操作@BindingAdapter:
@BindingAdapter("bind:imageBitmap")
public static void loadImage(ImageView iv, Bitmap bitmap) {
iv.setImageBitmap(bitmap);
}
Run Code Online (Sandbox Code Playgroud)
然后,在您的布局中,您ImageView将拥有bind:imageBitmap="@{...}",哪里...将是一个返回您的绑定表达式Bitmap.
您可以使用android.databinding.adapters.ImageViewBindingAdapter,它包含在数据绑定库中。
在您的视图模型或绑定到您的视图的任何内容中,实现如下方法:
@Bindable
public Drawable getDrawable() {
return new BitmapDrawable(context.getResources(), bitmap);
}
Run Code Online (Sandbox Code Playgroud)
在您的 中ImageView,添加如下内容:
android:src="@{viewModel.drawable}"
Run Code Online (Sandbox Code Playgroud)
显然,该viewModel变量必须已在您的布局中声明。
这是有效的,因为ImageViewBindingAdapter有这个方法:
@BindingAdapter("android:src")
public static void setImageDrawable(ImageView view, Drawable drawable) {
view.setImageDrawable(drawable);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4199 次 |
| 最近记录: |