前言:Android提供了一些方便使用的组件:TextView等,但是很多时候,默认的组件不能满足需要,因此,必需掌握“自定义组件”的能力。对于程序员,或者其它职业,应当直面自己缺失的东西,通过这种方式,掌握新知识,新技能,这样子,才能在快速迭代的社会里,不被淘汰。
其实对于自定义View,现在我还停留在理解理论的层面,知道大概的步骤:
1、在value/attrs.xml里,添加自定义View需要用到的一些变量属性,可以在布局文件里和代码里,给这些属性赋值;
2、在自定义View的构造方法里,获取属性的赋值(方便后面步骤使用);
3、根据需要,在onMeasure方法里,重新测量View的一些尺寸;
4、重写onDraw;
于是,我找来一些自定义的博客,跟着敲代码,通过实操,深化自定义View的过程和期间遇到的问题。
下面是原文路径:http://blog.csdn.net/xuwei527/article/details/11993103
期间,遇到的问题有:
1、Canvas.drawText()绘制文字的注意事项;
2、长度单位的认识;
那么开始进入正题。
目标实现的效果:给Layout添加外边框,和标题。
步骤:
1、添加属性
这里直接使用了上面博主的,其中"titleTextColor"属性,因与系统定义的冲突,所以改名为“titleTextColor1”
<declare-styleable name="TitleBorderLayout">
<!-- The title of BorderTitleLayout. -->
<attr name="title" format="string" />
<!-- The size of title. -->
<attr name="titleTextSize" format="dimension" />
<!-- The title start postion. -->
<attr name="titlePosition" format="dimension" />
<!-- The color of title. -->
<attr name="titleTextColor1" format="reference|color" />
<!-- The size of border. -->
<attr name="borderSize" format="dimension" />
<!-- The colo