我想使用Android数据绑定来设置图像。我已经阅读了很多关于这方面的教程,但图像仍然没有出现。
在我的模型中,我有以下方法:
@BindingAdapter({"app:imageUrl"})
public static void loadImage(ImageView view, String url) {
Log.i("III", "Image - " + url);
Context context = view.getContext();
Glide.with(context).load(GlobalValues.img_start_url + url).into(view);
}我还应该提一下,"III","Image -“+ url永远不会打印出来,所以问题不在Glide上。
这是我的xml:
<data>
<variable
name="feeling"
type="bg.web3.helpkarma.ViewModels.Feeling"/>
</data>
<ImageView
android:layout_width="wrap_content"
android:id="@+id/icon"
android:layout_height="wrap_content"
android:layout_marginRight="16dp"
app:imageUrl="@{feeling.maleIcon}"/>maleIcon是一个url字符串。
@SerializedName("male_icon")
@Expose
private String maleIcon;发布于 2018-07-19 19:24:14
以下是步骤: 1.在model类的注释@BindAdapter中声明此方法(“{bind:应当与我们在其中获取imageurl的变量相同”})
@BindingAdapter({"bind:imageUrl"})
public static void loadImage(ImageView view, String imageUrl) {
Picasso.with(view.getContext())
.load(imageUrl)
.placeholder(R.drawable.placeholder)
.into(view);}2.转到适配器的xml文件并添加app:imageUrl="@{user.imageUrl}“。在这一行中,两个属性app:imageurl和user.imageUrl应该是我们在bean类中获取图像url的相同参数。同样,我们在第一步中也定义了相同的内容。
<ImageView
android:id="@+id/restaurantIV"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="fitXY"
app:image="@{user.image}"
tools:ignore="ContentDescription"/>3.)别忘了加,Datum是Bean类的名称,对象的用户名`
<variable
name="user"
type="com.brst.cocktailclub.beans.restaurantSearch.Datum"/>
</data>`4.)另外,在布局参数中添加xmlns:app="http://schemas.android.com/apk/res-auto“。
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">5.)记住你的Bean类应该扩展BaseObservable。
6.)最后在适配器中设置数据
public void onBindViewHolder(@NonNull RestaurantAdapter.ViewHolder viewHolder, int i) {
Datum datum=data.get(i);
viewHolder.customRestaurantListBinding.setUser(datum);
}发布于 2016-11-08 07:04:49
Android DataBinding @BindingAdapter只支持android命名空间或者不支持。因此,将定义替换为
@BindingAdapter("imageUrl")
public static void loadImage(ImageView view, String url) {
[...]
}此外,如果feeling.maleIcon为空,则永远不会调用loadImage()。
发布于 2019-07-20 03:23:00
在这行中:
fun loadImage(layout: ConstraintLayout, url:String)将?添加到url类型。结果如下所示:
fun loadImage(layout: ConstraintLayout, url:String?)在我的例子中,我将布局作为参数,而不是图像视图。这应该是可行的。
https://stackoverflow.com/questions/40465337
复制相似问题