首页 > 编程知识 正文

ios加载网络片,html加载本地片ios

时间:2023-05-05 01:19:01 阅读:260179 作者:2559

databinding 加载图片需要使用注解 

下面 说下使用方法

还是先从布局开始把

<?xml version="1.0" encoding="utf-8"?><layout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <data> <variable name="item" type="com.hxm.Item"/> </data> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{item.title}" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{item.label}" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{item.content}" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintTop_toTopOf="parent"/> <ImageView android:layout_width="match_parent" android:layout_height="200dp" app:imageUrl="@{item.image}" /> <ImageView android:layout_width="match_parent" android:layout_height="200dp" android:src="@{item.photo}" /> </LinearLayout></layout>

里面有文字有图片

然后创建一个Item

public class Item { private String title; private String label; private String content; private String image; private int photo; public String getImage() { return image; } public void setImage(String image) { this.image = image; } public Item(String title, String label , String content, String image,int photo) { this.title = title; this.label = label; this.content = content; this.image = image; this.photo = photo; } public int getPhoto() { return photo; } public void setPhoto(int photo) { this.photo = photo; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getLabel() { return label; } public void setLabel(String label) { this.label = label; } public String getContent() { return content; } public void setContent(String content) { this.content = content; }}

代码中三个步骤

public class DataActivity extends AppCompatActivity{ DataActivityLayoutBinding binding; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); // 1.获取<data />标签对象 binding = DataBindingUtil.setContentView(this,R.layout.data_activity_layout); // 2.创建Item对象 Item item = new Item("父亲的背景","散文","我与父亲不相见已二年余了,我最不能忘记的是他的背影", "https://img.52z.com/upload/news/image/20180621/20180621055651_47663.jpg",R.mipmap.ele); // 3.绑定到mUser到布局对象中 binding.setItem(item);

里面有一个网址和一个本地图片, 如果这样运行是不会显示图片的,还要有BindingAdapter 注解才行

具体代码如下

public class ImageViewAdapter { @BindingAdapter("android:src") public static void setSrc(ImageView view, Bitmap bitmap) { view.setImageBitmap(bitmap); } @BindingAdapter("android:src") public static void setSrc(ImageView view, int resId) { view.setImageResource(resId); } @BindingAdapter("imageUrl") public static void setSrc(ImageView imageView, String url) { Glide.with(imageView.getContext()).load(url) .placeholder(R.mipmap.ic_launcher) .into(imageView); } @BindingAdapter({"app:imageUrl", "app:placeHolder", "app:error"}) public static void loadImage(ImageView imageView, String url, Drawable holderDrawable, Drawable errorDrawable) { Glide.with(imageView.getContext()) .load(url) .placeholder(holderDrawable) .error(errorDrawable) .into(imageView); }}

如果是加载本图片 @BindingAdapter("android:src") 网络图片是@BindingAdapter("imageUrl")

网络图片不要忘记添加添加网络权限 

 

然后看下效果图

 

 

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。