一、自定义控件的好处
1. 做到特殊的效果
2. 差异化
3. 突破系统的限制
4. 提高用户体验
二、如何自定义控件
简单的斜角的文本控件
1. 创建一个类,继承View或它的子类
2. 添加一个参数的构造方法
3. 重写onDraw()方法
canvas
画布
paint
画笔
三、如何使自定义控件动态化
原理:onDraw()方法被触发
通过方法: invalidate()
四、如何定义自定义控件的属性
目的:使自定义控件的使用更加方便、灵活
步骤:
1. 增加两个参数的构造方法
目的:能够读取到开发者在布局文件中编辑的组件属性
2. 定义属性
在valuse中创建一个attrs.xml
声明属性:
<declare-styleable name="MyTextView"><attr name="content" format="string" /><attr name="contentColor" format="color" /><attr name="contentSize" format="dimension" /></declare-styleable>3. 在两个参数的构造方法中,读取开发者在布局文件中使用的属性值代码:TypedArray o = context.obtainStyledAttributes(attrs, R.styleable.MyTextView);mContent = o.getString(R.styleable.MyTextView_content);mColor = o.getColor(R.styleable.MyTextView_contentColor, Color.BLACK);mDimen = o.getDimension(R.styleable.MyTextView_contentSize, 18);o.recycle();
4. 使用属性
4.1 在布局中创建新的命名空间
xmlns:myapp="http://schemas.android.com/apk/res/com.yuchen.test"
注意:com.yuchen.test为应用的包名,不是代码的包名
42. 在布局中使用自定义属性
myapp:content="自定义属性"
myapp:contentColor="#0000FF"myapp:contentSize="30sp"
五、更简单的创建自定义控件的技巧
创建Android Object,选择CustomView
六、如何学会更多自定义控件的绘制图形的方法技巧
看ApiDemos中的Graphics中的例子,
里面所有的都是自定义控件