自定义控件入门

Android程序员面试宝典

通常情况,有以下三种方法来实现自定义控件:

1.对现有控件进行拓展

2.通过组合来实现新的控件

3.重写View来实现新的控件

自定义控件入门_第1张图片

这四个构造方法确保了自定义View能够被大多数开发者使用。

原生的TextView使用onDraw()来绘制显示的文字,代码如下:

所以我们可以认为在程序调用了super.onDraw(canvas)之后,绘制显示就完成了,那么如果要进行自定义View,只能在super.onDraw(canvas)之前进行(否则自定义内容可能会被显示的文字重叠覆盖)。

下面正式开始自定义View。

1.在构造方法中完成初始化

自定义控件入门_第2张图片

这里的mPaint1和mPaint2是两个全局变量,简单地理解成两支属性不同的画笔️,我们定义了这两支画笔的颜色的填充的方式。

2.重写onDraw()方法

自定义控件入门_第3张图片

这边解释一下为什么要在canvas.translate(50,0)之前进行canvas.save(),因为canvas.translate()其实是对画布进行操作,这样能确保绘制完成的内外层方框不受画布移动的影响(经过实验,事实上不加这句话也不会有影响,规范起见还是加上),这样相当于让之后绘制的文字向前平移了50个像素。

第一次发现文字始终显示不出来弄了半天发现是一开始错误继承了View类,导致这不是一个TextView。

3.布局文件

自定义控件入门_第4张图片

这样基本的过程就结束了,下面是效果图:

自定义控件入门_第5张图片

阅读原文

  • 欢迎关注微信公众号、长期为您推荐优秀博文、开源项目、视频

  • 微信公众号名称:Android干货程序员

你可能感兴趣的:(自定义控件入门)