DataBinding加载图片(3)

加载图片也是项目中使用最多的一项,什么头像啊,照片啊,背景啊一大堆的东西,所以这也是我们所关心的。

首先还是创建一个Bean类,因为我们大部分的文件都是后台给我们的,所以Bean类是必不可少的,也是最多的。

public class UserBean {
    private String url;//照片
    private String name; //姓名
     private int age; //年龄

    public void setUrl(String url) {
        this.url = url;
    }

    public String getUrl() {
        return url;
    }

    public UserBean(String name, int age,String url) {
         this.name = name;
        this.age = age;
    this.url=url;
    }
    public String getName() {
        return name; }
    public void setName(String name) {
        this.name = name; }
    public int getAge() {
        return age; }
    public void setAge(int age) {
        this.age = age; }
}

然后就是在布局中绑定

<variable
    name="user"
    type="UserBean"/>
<ImageView
    android:layout_width="200dp"
    android:layout_height="200dp"
    android:scaleType="center"
    app:imageUrl="@{user.url}"
    />

姓名和年龄我就不写了,第一章里面有,需要注意的是app:imageUrl="@{user.url}",这里的user.url都知道,是Bean类中的属性,那么app:imageUrl是哪里来的呢?当然是我们自己写的了啊。

@BindingAdapter({"imageUrl"})
public static void loadimage(ImageView imageView,String url){
    Log.e("TAG",url+"   -走到这里了");
    Glide.with(imageView.getContext()).load(url)
            .placeholder(R.mipmap.ic_launcher)
            .into(imageView);
}

这里重要的就是注解,不了解的可以去看看注解机制,这里只要知道,你写了这个注解,里面的名字跟布局中的对上,那么就会执行这个方法就可以了。

然后调用方法也很简单,就是第一章里面写的绑定赋值。

ActivityMainBinding binding = DataBindingUtil.setContentView(MainActivity.this, R.layout.activity_main);
 
 
UserBean userBean= new UserBean("张三",11,URL);
  binding.setUser(userBean);
private String URL="https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=4138850978,2612460506&fm=200&gp=0.jpg";

最后,如果看图片没显示出来,别忘了看看你的网络权限给没给啊。







猜你喜欢

转载自blog.csdn.net/Liu_ser/article/details/80707697
今日推荐