APIDemo学习笔记——在XML中使用自定义的View类

看了APIDemo->View->Custom的代码。

第一眼看过去这些代码还以为是一个很简单的TextView,但在翻到XML文件后,发现这个View是自定义的View,该View的定义放在view包的LabelView.java内,还是很有学习的价值的

。这个Demo主要包括view包的CustomView1.java,LabelView.java,layout中的custom_view_1.xml,res中的attrs.xml。

 

代码不贴了,每个版本的SDK里都带有的,我上面已经列出来了。

 

在XML布局文件中使用自定义View主要有以下几个要点:

1、XML布局文件,标签名要包含完整的包名、类名

2、自定义的对象中如果需要用到不属于View类自带的标签名,需要在res/values下新建一个attrs.xml文件,将这些标签名的格式包含进去,写法参照中APIDemo的例子。使用自定义的标签时,前缀为app:,区别于系统自带的android:。

3、新建了attrs.xml文件后,在R文件下才会生成styleable。

4、要让自定义的View的XML标签起作用,在代码里,必须重写构造函数View(Context, AttributeSet)方法。

5、重写的构造方法中,使用obtainStyledAttributes得到XML里的变量的集合,第二个参数名为在attrs.xml里写的style name。返回值为TypedArray类型。每种类型的变量都有相应的方法得到(不要傻傻地自己去转换= =!!)。得到的值记得判断是否为空值。

6、构造函数最后要使用recycle方法,将得到的TypedArray回收。

7、记得重写onDraw方法。

 

你可能感兴趣的:(APIDemo学习笔记——在XML中使用自定义的View类)