Ahm*_*deh 9 java data-binding android android-studio
我想要实现自定义功能,从下载图像ImageView
像这样app:imageUrl="@{status.imageUrl}"
在下面的代码:
<?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="status"
type="com.databinding.data.Status" />
</data>
<RelativeLayout
android:id="@+id/status_container"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/status_avatar"
android:layout_width="64dp"
android:layout_height="64dp"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:contentDescription="@null"
app:imageUrl="@{status.imageUrl}"/>
</RelativeLayout>
</layout>
Run Code Online (Sandbox Code Playgroud)
如何编写这个可以自动下载图像的功能@{status.imageUrl}
?使用此库com.android.databinding
.
对于这项工作,您需要一个像android databinding lib这样的库。
在此库中,首先将以下脚本添加到build.gradle
项目中:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.5.0'
classpath 'com.android.databinding:dataBinder:1.0-rc4'
}
}
Run Code Online (Sandbox Code Playgroud)
并将此代码添加到build.gradle
模块文件的顶部:
apply plugin: 'com.android.databinding'
Run Code Online (Sandbox Code Playgroud)
并创建您的类,例如:class BindingCustom
并编写以下代码:
public class BindingCustom {
@BindingAdapter({"imageUrl"})
public static void loadImage(final ImageView view, String url) {
Picasso.with(view.getContext()).load(url).into(view);
}
}
Run Code Online (Sandbox Code Playgroud)
在课程中,BindingCustom
您可以loadImage
通过自己感兴趣的方式从 URL 下载图像,但我使用Picasso库,因为它是此作业的通用库,您可以将其更改为您的代码。
归档时间: |
|
查看次数: |
1343 次 |
最近记录: |