莫道桑榆晚,为霞尚满天。这篇文章主要讲述android -------- Data Binding的使用 ( 六) 自定义属性相关的知识,希望能为你提供帮助。
今天来说说DataBinding在自定义属性的使用
默认的android命名空间下,我们会发现并不是所有的属性都能直接通过data binding进行设置,比如margin,padding,还有自定义View的各种属性。
默认资源使用
< ?xml version="1.0" encoding="utf-8"?> < layout xmlns:android="http://schemas.android.com/apk/res/android"> < data> < !--通过自定义的data来赋值,data的类型定位string--> < variable name="data" type="String" /> < /data> < LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> < Button android:id="@+id/btn_demo8_add" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="@{data}" /> < /LinearLayout> < /layout>
添加值:
demo8Binding.setData("自定义属性-添加");
属性:
@BindingAdapter("android:paddingLeft") public static void setPaddingLeft(View view, int padding) { view.setPadding(padding, view.getPaddingTop(), view.getPaddingRight(), view.getPaddingBottom()); }
图片自定义属性:
/** * 1.加载图片,无需手动调用此方法 * 2.使用@BindingAdapter注解设置自定义属性的名称,imageUrl就是属性的名称, * 当ImageView中使用imageUrl属性时,会自动调用loadImage方法, * * @param imageView ImageView * @param url图片地址 */ @BindingAdapter({"imageUrl"}) public static void loadImage(ImageView imageView, String url) { Glide.with(imageView.getContext()).load(url) .placeholder(R.mipmap.ic_launcher) .error(R.mipmap.ic_launcher) .into(imageView); }
添加属性和数据:
< !-- 当imageUrl属性存在时,会自动调用ImageHelper的loadImage方法 --> < ImageView android:layout_width="120dp" android:layout_height="120dp" android:scaleType="centerCrop" app:imageUrl="@{userImg.picUrl}" android:paddingLeft="@{15}" />
我只是简单的举几个例子,还可以定义其他的属性。
【android -------- Data Binding的使用 ( 六) 自定义属性】 参考文档:http://blog.zhaiyifan.cn/2016/07/06/android-new-project-from-0-p8/
推荐阅读
- SpringBoot解决测试环境,生产环境使用不同application.properties的问题
- Android dpdpipx
- java/android 做题中整理的碎片小贴士(12)
- VMWARE Thin APP
- 慕测Appium
- Android 各种路径详细说明
- android java层实现hook替换method
- Android_5_学习《第一行代码》的使用摄像头和相册无法显示图片问题解决
- Linux最佳免费音乐创作工具有哪些(哪个最好用?)