PathEffect学习,Path类是绘画中常见的一个类,会根据特定的路径绘制图形,如果将paint属性设置成Stroke,(paint.setStyle(Paint.Style.STROKE))则可以看到一条条线组成的图形。然而这些图形 看上去往往很单调,而且有的时候我们也需要绘制虚线,或者由一些小的图形来沿着一定的路径组成图形,API接口里其实提供了这个功能,使用 PathEffect就可以完成这些比较特殊一些的效果。首先还是看一下PathEffect这个类:
public class PathEffect {
protected void finalize() throwsThrowable {
nativeDestructor(native_instance);
}
private static native void native Destructor(longnative_patheffect);
longnative_instance;
}
通常使用PathEffect是使用其子类
如ConnerPathEffect(float radious);将连线之间的夹角用平滑的弧线链接,radious是弧线的半径
DashPathEffect(float[] intervals,float offset);float[]数组的size必须是偶数,如float[]{1,2}则表示画一格空两格,offset则是表示起始偏移量,画出虚线。
DiscretePathEffect(float segmentLength,float deviation)这是离散路径效果,第一个参数表示离散点的密度,第二个参数则是离线点的突出大小,数值越大突出的越大
PathDashPathEffect(Path shape, float advance, float phase,PathDashPathEffect.Style style)使用固定的图形来填充路径,shape使用的图形,advance每个图形的间距,phase表示绘制图形时的偏移量,style绘制是的风格,有三种Style.ROTATE、Style.MORPH和Style.TRANSLATE.Style.ROTATE:段连接处的图形转换以旋转到与下一段移动方向相一致的角度进行转转。Style.MORPH:图形会以发生拉伸或压缩等变形的情况与下一段相连接.Style.TRANSLATE:图形会以位置平移的方式与下一段相连接。
ComposePathEffect(PathEffect outerpe,PathEffect innerpe):需要两个PathEffect实例,先展示innerpe这个PathEffect的效果,然后再在innerpe的基础上去增加outerpe的效果.
SumPathEffect(PathEffect first,PathEffect second):这个是简单的重叠,先展示first,然后把second展示出来 简单的重叠到一起