加载图片也是项目中使用最多的一项,什么头像啊,照片啊,背景啊一大堆的东西,所以这也是我们所关心的。
首先还是创建一个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";
最后,如果看图片没显示出来,别忘了看看你的网络权限给没给啊。