使用@ViewDebug.ExportedProperty注解,我们可以在android提供的工具Monitor(或已经废弃的DDMS)中的Hierarchy Viewer中调试View的属性。我们可以直接观察View的某个变量或方法的值,实时观察View的状态变化。
使用
下面是@ViewDebug.ExportedProperty注解的部分属性的使用介绍:
1.category
category用来指定属性的类别,例如measurement, layout, drawing等。我们在自定义View中为使用@ViewDebug.ExportedProperty注解的变量或方法指定category:
运行程序,在Hierarchy Viewer中查看View的属性如下:
2.resolveId
当resolveId为true时,如果使用注解的变量或方法的值为int数据,那么这个值会被转化为对应的Android资源的名称。
在R.java中找到一个资源ID:
public static final int activity_main=0x7f030000;
使用注解属性resolveId:
结果如下:
3.mapping
mapping可以将int值映射到指定的字符串值,例如View.getVisibility()返回的值是int值,View中使用注解将其映射为字符串,其中0为”VISIBLE”,4为”INVISIBLE”,8为”GONE”。我们重载View.getVisibility()并加上我们自己定制的映射:
结果如下:
4.indexMapping
indexMapping可以将数组的序号映射为字符串。
结果如下:
Demo
参考
@ViewDebug.ExportedProperty