Paint setPathEffect(PathEffect effect)设置绘制路径的效果
来源:互联网 发布:家具行业进销存软件 编辑:程序博客网 时间:2024/05/22 08:25
/** * 设置绘制路径的效果,如点画线等 * setPathEffect(PathEffect effect); */
1、//CornerPathEffect—-圆形拐角效果CornerPathEffect cornerPathEffect = new CornerPathEffect(10);/** * 利用半径R=5的圆来代替原来两条直线间的夹角 */paint.setPathEffect(cornerPathEffect);2、//DashPathEffect——虚线效果/** * public DashPathEffect(float intervals[], float phase) * intervals[]:表示组成虚线的各个线段的长度;整条虚线就是由intervals[]中这些基本线段循环组成的。 * phase:开始绘制的偏移值 * 比如,我们定义new float[] {20,10};那这个虚线段就是由两段线段组成的,第一个可见的线段长为20,每二个线段不可见,长度为10; */DashPathEffect dashPathEffect = new DashPathEffect(new float[]{30,30},0);paint.setPathEffect(dashPathEffect);3、//DiscretePathEffect(2,5)
/** * 把原有的路线,在指定的间距处插入一个突刺 * 第一个这些突出的“杂点”的间距,值越小间距越短,越密集 * 第二个是突出距离 */DiscretePathEffect discretePathEffect = new DiscretePathEffect(2,5);paint.setPathEffect(discretePathEffect);canvas.drawPath(path,paint);4、//利用ComposePathEffect先应用圆角特效,再应用虚线特效canvas.translate(0,300);ComposePathEffect composePathEffect = new ComposePathEffect(dashPathEffect,cornerPathEffect);paint.setPathEffect(composePathEffect);canvas.drawPath(path,paint);5、//利用SumPathEffect,分别将圆角特效应用于原始路径,然后将生成的两条特效路径合并canvas.translate(0,300);paint.setStyle(Paint.Style.STROKE);SumPathEffect sumPathEffect = new SumPathEffect(cornerPathEffect,dashPathEffect);paint.setPathEffect(sumPathEffect);canvas.drawPath(path,paint);6、//PathDashPathEffect
/** * 利用以另一个路径为单位,延着路径盖章.相当于PS的印章工具 */public class PathDashPathView extends View { public PathDashPathView(Context context, AttributeSet attrs) { super(context, attrs); } int dx =0 ; @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas);// canvas.drawPath(getStampPath1(),getPaint());// drawPathDashPathEffect(canvas); dx++;// invalidate(); } private Paint getPaint(){ Paint paint = new Paint(); paint.setStrokeWidth(4); paint.setColor(Color.GREEN); paint.setStyle(Paint.Style.STROKE); paint.setAntiAlias(true); return paint; } private void drawPathDashPathEffect(Canvas canvas){ Paint paint = getPaint(); Path path = new Path(); path.moveTo(100,600); path.lineTo(400,150); path.lineTo(700,900); canvas.drawPath(path,paint); canvas.translate(0,200); /** * 利用以另一个路径为单位,延着路径盖章.相当于PS的印章工具 */ paint.setPathEffect(new PathDashPathEffect(getStampPath(),35,dx, PathDashPathEffect.Style.MORPH)); canvas.drawPath(path,paint); canvas.translate(0,400); paint.setPathEffect(new PathDashPathEffect(getStampPath(),35,dx, PathDashPathEffect.Style.ROTATE)); canvas.drawPath(path,paint); canvas.translate(0,400); paint.setPathEffect(new PathDashPathEffect(getStampPath(),35,dx, PathDashPathEffect.Style.TRANSLATE)); canvas.drawPath(path,paint); } private Path getStampPath(){// Path path = new Path();// path.moveTo(0,20);// path.lineTo(10,0);// path.lineTo(20,20);// path.close();////// Path path = new Path();//// path.moveTo(0,60);//// path.lineTo(60,60);//// path.lineTo(40,0);//// path.lineTo(20,0);//// path.close();// path.addCircle(0,0,5, Path.Direction.CCW); //空心 float RECT_WIDTH = 42; float RECT_HEIGHT = 18; float RECT_BORDER_WIDTH = 6; Path pathStamp = new Path(); pathStamp.moveTo(-RECT_WIDTH / 2, 0); pathStamp.lineTo(0, RECT_HEIGHT / 2); pathStamp.lineTo(RECT_WIDTH / 2, 0); pathStamp.lineTo(0, -RECT_HEIGHT / 2); pathStamp.close(); pathStamp.moveTo(-RECT_WIDTH / 2 + RECT_BORDER_WIDTH, 0); pathStamp.lineTo(0, -RECT_HEIGHT / 2 + RECT_BORDER_WIDTH / 2); pathStamp.lineTo(RECT_WIDTH / 2 - RECT_BORDER_WIDTH, 0); pathStamp.lineTo(0, RECT_HEIGHT / 2 - RECT_BORDER_WIDTH / 2); pathStamp.close(); return pathStamp; } private Path getStampPath1(){// Path path = new Path();// path.moveTo(0,100);// path.lineTo(50,0);// path.lineTo(100,100);// path.close();// path.addCircle(50,50,20, Path.Direction.CCW); Path path = new Path(); path.moveTo(0,60); path.lineTo(60,60); path.lineTo(40,0); path.lineTo(20,0); path.close(); path.addCircle(0,0,10, Path.Direction.CCW); return path; }
阅读全文
0 0
- Paint setPathEffect(PathEffect effect)设置绘制路径的效果
- 详解Paint的setPathEffect(PathEffect effect)
- 详解Paint的setPathEffect(PathEffect effect)
- PathEffect,使用mPaint.setPathEffect为path路径设置不同的效果
- Paint---PathEffect(路径效果)
- PathEffect 实现子类的绘制效果
- PathEffect的应用:android 绘制虚线效果
- Android Paint 线条效果 PathEffect
- Path类:利用PathEffect为路径绘制不同效果
- Android基础入门教程——8.3.12 Paint API之—— PathEffect(路径效果)
- Android:视图绘制(五) ------Paint进阶之PathEffect
- android中Paint的属性设置以及PathEffect,canvas简单讲解
- Paint,MaskFilter,FontMetrics及PathEffect
- Android Paint之PathEffect详解
- Android Paint之PathEffect详解
- Canvas+Paint绘制路径,文字与图形
- Android Paint绘制动态心电图效果
- Paint的效果研究
- 大数据平台控制台命令大全
- USACO-Section1.3 Ski Course Design【暴力枚举】
- Android
- apk版本更新下载安装
- Quagga-RE
- Paint setPathEffect(PathEffect effect)设置绘制路径的效果
- TCP:三次握手、四次握手、backlog及其他
- UGUI序列帧动画
- Solr入门和实践以及我对Solr的8点理解
- Python网络数据抓取
- 解决CentOS下可以ping通ip ping不通域名
- Spring3.1.0实现原理分析(十一).MVC从桌面到web应用
- XSS攻击与防御
- Java学习笔记-《Java程序员面试宝典》-第四章基础知识-4.2面向对象技术(4.2.3-4.2.5)