有的时候我们需要一种虚线效果,比如图片的边框,愤怒的小鸟的飞翔路径,那么怎么绘制这些虚线呢?方法很多,目前我觉得好的有两种:
一、自己创建模式,一个点一个点的绘制。
二、用Android提供的 DashPathEffect 类来创建模式绘制。
下面我要演示的就是第二种方法,用Android提供给我的API来绘制。
由于是开发项目的一个小块,下面只能给出部分截图:
下面看一下核心绘图代码:
public void draw(Canvas mcanvas) {
}
下面是关于这个DashPathEffect 的一些说明,摘录的:
DashPathEffect是PathEffect类的一个子类,可以使paint画出类似虚线的样子,并且可以任意指定虚实的排列方式.
代码中的float数组,必须是偶数长度,且>=2,指定了多少长度的实线之后再画多少长度的空白.
如本代码中,绘制长度1的实线,再绘制长度2的空白,再绘制长度4的实线,再绘制长度8的空白,依次重复.1是偏移量,可以不用理会.
简单介绍下 PathEffect类:
PathEffect是用来控制绘制轮廓(线条)的方式。
PathEffect对于绘制Path基本图形特别有用,但是它们也可以应用到任何Paint中从而影响线条绘制的方式。
使用PathEffect,可以改变一个形状的边角的外观并且控制轮廓的外表。
Android包含了多个PathEffect,包括:
CornerPathEffect
DashPathEffect
DiscretePathEffect
PathDashPathEffect
下面的效果可以在一个Paint中组合使用多个Path Effect。
SumPathEffect
ComposePathEffect
对象形状的PathEffect的改变会影响到形状的区域。这就能够保证应用到相同形状的填充效果将会绘制到新的边界中。