Android中关于PathEffect子类的效果(中级)

可以参考APIDeam中Graphis--PathEffects的效果在对比自己写出的效果

上代码

privatestaticclasspatheffectextendsView{

privateint[]color;

privatePathEffect[]patheffect=newPathEffect[7];

privatePaintpaint;

privatefloatphase;

privatePathpath;

/*

*初始化工作

*/

publicpatheffect(Contextcontext){

super(context);

paint=newPaint();

paint.setAntiAlias(true);

paint.setStyle(Paint.Style.STROKE);

paint.setStrokeWidth(5);

color=newint[]{

Color.BLACK,Color.BLUE,Color.YELLOW,Color.RED,Color.GRAY,Color.GREEN,Color.CYAN};

path=newPath();

path.moveTo(0,0);

for(inti=1;i<15;i++){//画出15个点连成一条线

path.lineTo(i*20,(float)Math.random()*60);

}

// path.close();如果有这句话第一个点会和最后一个点关联如图一没有如图二

}

/*下面测试PathEffect的子类

* ComposePathEffect,CornerPathEffect,DashPathEffect,

*DiscretePathEffect,PathDashPathEffect,SumPathEffect

*建议自己测试一下自己看效果就回明白这些子类的作用了

*/

@Override

protectedvoidonDraw(Canvascanvas){

super.onDraw(canvas);

canvas.drawColor(Color.WHITE);

patheffect[0]=null;

patheffect[1]=newCornerPathEffect(10);

patheffect[2]=newDiscretePathEffect(3,5);

patheffect[3]=newDashPathEffect(newfloat[]{20,10,5,10},10);

Pathp=newPath();

p.addRect(0,0,8,8,Path.Direction.CCW);

patheffect[4]=newPathDashPathEffect(p,12,phase,PathDashPathEffect.Style.ROTATE);

patheffect[5]=newSumPathEffect(patheffect[3],patheffect[4]);

patheffect[6]=newComposePathEffect(patheffect[3],patheffect[4]);

canvas.translate(8,8);

for(inti=0;i<patheffect.length;i++){

paint.setColor(color[i]);

paint.setPathEffect(patheffect[i]);

canvas.drawPath(path,paint);

canvas.translate(0,60);

}

phase+=1;//这里的phase如果不自增是没有动画效果的phase制定路径效果的相位

invalidate();//回调onDdraw重新绘制

}

}

大家可以看每条线的效果对应

更多相关文章

  1. Android 文字自动滚动(跑马灯)效果的两种实现方法[特别好使]
  2. android中实现tab标签切换时的一些效果
  3. Android dialog回弹效果
  4. android tab选项卡效果
  5. Android日记之2012/02/13——Android中Button点击效果
  6. 【Android】手写优化-更为平滑的签名效果实现
  7. Android Tv 背景动态改变,带过渡效果
  8. Android中的Button自定义点击效果之改变点击时按钮的颜色
  9. Android属性动画——实现灵动菜单效果

随机推荐

  1. MySQL 分表分库怎么进行数据切分
  2. MySQL使用B+Tree当索引的优势有哪些
  3. Mysql主从复制与读写分离图文详解
  4. mysql中的7种日志小结
  5. MySQL存储过程的创建、调用与管理详解
  6. MySql分表、分库、分片和分区知识深入详
  7. MySQL如何快速批量插入1000w条数据
  8. MySql8.023安装过程图文详解(首次安装)
  9. MySQL使用binlog日志做数据恢复的实现
  10. MySQL的binlog日志使用详解