这几天公司的项目静态页也写的差不多了,其中也写了两个简单的自定义控件,
1.自定义下划线的textView
2.斜线切割的textView
一、自定义下划线的textView
textView本身就是可以就能自带下划线,如以下的代码。
|
|
但是不能定制,下划线的距文字的高度,下划线的宽度都不能改,所以就自定义了一个,比较简单。
|
|
如下图所示的下划线
二、斜线切割的textView
如上图所示,主要用到了Mask遮盖效果,首先是底层的textView显示数字,然后用一个透明的三角切割掉重叠部分,之后再画上一条斜线。
首先来看上图就是mask的几种不同效果,那么我们用到的就是DstOut,代码如下
|
|
|
|
首先在初始化方法中,创建画笔及颜色,设置画笔类型为实心,设置右边有一点点的padding,是为了让斜线看上去更长一点,初始化完成后,就是在onDraw中利用画布来画我们的三角形和斜线了。
|
|
1.保存现有层,这个现有层就是我们显示的数字,这个方法一定要在super方法之前调用,如果在之后调用,没有效果,但是如果你两个遮盖的图形都是画出来的,那么就可以在super之后调用。
2.使用path来绘制三角形,moveTo是起点,lineTo是另外连接线的终点,再调用close()方法就能画出一个三角写了。
3.设置我们的遮盖类型为DST_OUT。
4.用画布绘制三角形,因为这时候的画笔设置了Xfermode模式,所以画出来的去掉三角形后的部分。
5.切割完后,调用restoreToCount()方法恢复之前保存的层。
6.取消画笔的xfermode模式。
7.在三角形的斜边上画一条白色的斜线,大功告成。
|
|