有的时候咱们须要一种虚线效果,好比图片的边框,愤怒的小鸟的飞翔路径,那么怎么绘制这些虚线呢?方法不少,目前我以为好的有两种:html
1、本身建立模式,一个点一个点的绘制。android
2、用Android提供的 DashPathEffect 类来建立模式绘制。canvas
下面我要演示的就是第二种方法,用Android提供给个人API来绘制。数组
因为是开发项目的一个小块,下面只能给出部分截图:url
下面看一下核心绘图代码:.net
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的改变会影响到形状的区域。这就可以保证应用到相同形状的填充效果将会绘制到新的边界中。
本文同步分享在 博客“xiangzhihong8”(CSDN)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。