一、View的大家族
大枝分类
详细分类
二、使用自定义View的方法
- 通过直接继承View 例如 ABC extends View
- 重写View子类实现逻辑的View 例如 ABC extends TextView 然后实现方法
注意点:方法二相比较与方法一更简单
三、使用自定义View的步骤
- 自绘控件:直接继承View类的方式自绘控件
- 重写控件:间接继承View子类的方式重写控件
- 组合控件:间接继承View子类,将需要用到的原生控件组合到一起
四、自绘控件的步骤
- 继承View
- 实现Listener接口
- 实现构造方法
- 重写onDraw方法
注意点:在自绘控件中,绘制的逻辑基本都写在此方法中
需调好Paint画笔,将Paint画在Canvas上,输出到屏幕上
5 Paint画笔
方法名 | 解释 |
---|---|
setAntiAlias | 设置画笔的锯齿效果 |
setColor | 设置画笔颜色 |
setARGB() | 设置画笔A,R,G,B的值 |
setAlpha | 设置画笔的Alpha值 |
setStyle | 设置画笔的风格(空心或实心) |
setStrokeWidth | 设置空心边框的宽度 |
getColor | 获取画笔的颜色 |
6. Canvas绘制
方法名 | 解释 |
---|---|
drawLine() | 绘制直线 |
drawCircle() | 绘制圆形 |
drawBitmap() | 绘制图形 |
drawRect() | 绘制矩形 |
drawText() | 绘制字符 |
7. invalidate方法刷新
8. 在布局文件中引用
五、使用自绘控件的示例(以时钟为例)
要达到的效果是和我们日常看到的时钟一样
效果图
1.首先新建一个类继承View,实现他自带的方法,定义出画笔
public class