Android开发-数据绑定-DataBinding-AndroidStudio(四)Glide解析图片

    xiaoxiao2021-11-29  25

    下载一个图片 设置到ImageView 转载请注明出处: http://blog.csdn.net/iwanghang/article/details/53213811 这里使用Glide的jar包 代替Volley进行解析 MainAcitivy.java: package com.iwanghang.databinding; import android.databinding.DataBindingUtil; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import com.iwanghang.databinding.databinding.ActivityMainBinding; import java.util.ArrayList; import java.util.List; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //setContentView(R.layout.activity_main); /** * 用DataBinding方式载入layout */ ActivityMainBinding binding = DataBindingUtil.setContentView(this,R.layout.activity_main); User user = new User(); user.setName("用户名"); user.setNickName("昵称"); //user.setNickName(null); user.setLevel(4); user.setEmail("abc@123.com"); user.setVip(true); user.setIcon("http://avatar.csdn.net/6/5/8/1_iwanghang.jpg"); User user1 = new User(); user1.setName("用户名1"); user1.setNickName("昵称1"); user1.setLevel(2); user1.setEmail("def@456.com"); user1.setVip(false); List<User> users = new ArrayList<>(); users.add(user); users.add(user1); binding.setUsers(users); } } User.java: package com.iwanghang.databinding; import android.view.View; import android.widget.Toast; public class User { private String name; private String nickName; private String email; private int level; private boolean vip; private String icon; public String getIcon() { return icon; } public void setIcon(String icon) { this.icon = icon; } public int getLevel() { return level; } public void setLevel(int level) { this.level = level; } public boolean isVip() { return vip; } public void setVip(boolean vip) { this.vip = vip; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getNickName() { return nickName; } public void setNickName(String nickName) { this.nickName = nickName; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } /** * 设置点击事件 */ public void clickName(View view){ Toast.makeText(view.getContext(), "clickName:" + name, Toast.LENGTH_SHORT).show(); } public boolean longClickName(View view){ Toast.makeText(view.getContext(), "longClickName", Toast.LENGTH_SHORT).show(); return true; } } Utils.java: package com.iwanghang.databinding; import android.databinding.BindingAdapter; import android.widget.ImageView; import com.bumptech.glide.Glide; /** * DataBinding 数据转换类 */ public class Utils { // 下载一个图片 设置到ImageView @BindingAdapter({"imageUrl"}) public static void loadImage(ImageView view, String url){ if (url == null){ view.setImageResource(R.mipmap.ic_launcher); } else { // Glide代替Volley Glide.with(view.getContext()).load(url).into(view); } } } activity_main.xml: <?xml version="1.0" encoding="utf-8"?> <!--改造后的layout--> <layout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" xmlns:app="http://schemas.android.com/apk/res-auto"> <!--数据模块--> <data> <!--只有一个user--> <!--<variable--> <!--name="user"--> <!--type="com.iwanghang.databinding.User"/>--> <!--使用users--> <import type="com.iwanghang.databinding.User"/> <variable name="users" type="java.util.List<User>"/> </data> <!--样式模块--> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal" android:gravity="center" tools:context="com.iwanghang.databingding.MainActivity"> <include layout="@layout/user_layout" app:user="@{ users[0] }"/> <include layout="@layout/user_layout" app:user="@{ users[1] }"/> </LinearLayout> </layout> user_layout.xml: <?xml version="1.0" encoding="utf-8"?> <!--改造后的layout--> <layout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" xmlns:app="http://schemas.android.com/apk/res-auto"> <!--数据模块--> <data> <variable name="user" type="com.iwanghang.databinding.User"/> </data> <!--样式模块--> <LinearLayout android:layout_weight="1" android:layout_width="0dp" android:layout_height="match_parent" android:orientation="vertical" android:gravity="center" tools:context="com.iwanghang.databingding.MainActivity"> <ImageView app:imageUrl="@{ user.icon }" android:layout_width="100dp" android:layout_height="100dp" /> <TextView android:onClick="@{ user.clickName }" android:onLongClick="@{ user.longClickName }" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="@{ user.vip ? 0xffff0000 : 0xff0000}" android:text="@{ user.nickName + `(` + user.name + `)` }" /> <!--如果nickName为空,显示name;如果如果nickName非空,显示nickName。下面2个写法都可以--> <!--android:text="@{ user.nickName == null ? user.name : user.nickName }"--> <!--android:text="@{ user.nickName ?? user.name }"--> <TextView android:text="@{ user.nickName ?? user.name }" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{ user.email }" /> <!--如果level<3,颜色为00ff00,否则,颜色为0000ff--> <!--@{ user.level < 3 ? 0xff00ff00 : 0xff0000ff }--> <!--@{ user.level < 3 ? 0xff00ff00 : 0xff0000ff }--> <!--需要写成第二行的形式,因为“<”需要转义成“<”--> <TextView android:textColor="@{ user.level < 3 ? 0xff00ff00 : 0xff0000ff }" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="level" /> </LinearLayout> </layout> 转载请注明出处: http://blog.csdn.net/iwanghang/article/details/53213811 欢迎移动开发爱好者交流 沈阳或周边城市公司有意开发Android,请与我联系 联系方式 微信:iwanghang QQ:413711276 邮箱:iwanghang@qq.com
    转载请注明原文地址: https://ju.6miu.com/read-678681.html

    最新回复(0)