博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[Android]path绘图demo
阅读量:5935 次
发布时间:2019-06-19

本文共 1901 字,大约阅读时间需要 6 分钟。

 

class MyView extends View {    float phase;    PathEffect[] effects = new PathEffect[7];    int[] colors;    private Paint paint;    Path path;    public MyView(Context context) {        super(context);        paint = new Paint();        paint.setStyle(Paint.Style.STROKE);        paint.setStrokeWidth(4);        // 创建初始化Path        path = new Path();        path.moveTo(0, 0); // 设置绘制的起点在左上角        for (int i = 1; i <= 15; i++) {            path.lineTo(i * 20, (float) Math.random() * 60);        }        colors = new int[] { Color.BLACK, Color.BLUE, Color.CYAN, Color.GREEN, Color.MAGENTA, Color.RED,                Color.YELLOW };    }    @Override    protected void onDraw(Canvas canvas) {        // 将背景填充成白色        canvas.drawColor(Color.WHITE);        // -------下面开始初始化7中路径的效果        // 使用路径效果        effects[0] = null;        // 使用CornerPathEffect路径效果        effects[1] = new CornerPathEffect(10);        // 初始化DiscretePathEffect        effects[2] = new DiscretePathEffect(3.0f, 5.0f);        // 初始化DashPathEffect        effects[3] = new DashPathEffect(new float[] { 20, 10, 5, 10 }, phase);        // 初始化PathDashPathEffect        Path p = new Path();        p.addRect(0, 0, 8, 8, Path.Direction.CCW);        effects[4] = new PathDashPathEffect(p, 12, phase, PathDashPathEffect.Style.ROTATE);        // 初始化PathDashPathEffect        effects[5] = new ComposePathEffect(effects[2], effects[4]);        effects[6] = new SumPathEffect(effects[4], effects[3]);        // 将画布移到8,8处开始绘制        canvas.translate(8, 8);        // 依次使用7中不同路径效果,7种不 同的颜色来绘制路径        for (int i = 0; i < effects.length; i++)        {            paint.setPathEffect(effects[i]);            paint.setColor(colors[i]);            canvas.drawPath(path, paint);            canvas.translate(0, 60);        }        // 改变phase值,形成动画效果        phase += 1;        invalidate();    }}

 

转载于:https://www.cnblogs.com/spadd/p/4430130.html

你可能感兴趣的文章
Linux下通过配置Crontab实现进程守护
查看>>
ios 打包上传Appstore 时报的错误 90101 90149
查看>>
Oracle推出轻量级Java微服务框架Helidon
查看>>
密码概述
查看>>
程序员初入公司:10大经验让你能力提升20倍!
查看>>
nagios+nrpe监控配置错误日志集
查看>>
Hyper-V、SCVMM2012和XenDesktop 5.6桌面虚拟化运维之更新、添加和删除虚拟桌面
查看>>
Wireless在域里面实施WPA认证设定应用
查看>>
澳大利亚政府想让ISP拦截恶意软件
查看>>
《数据分析实战:基于EXCEL和SPSS系列工具的实践》——3.4 数据量太大了怎么办...
查看>>
JavaScript应用开发实践指南迷你书
查看>>
autoconf,automake,libtool
查看>>
jQuery的技巧01
查看>>
Spring5 异步事件
查看>>
基于泛型实现的ibatis通用分页查询
查看>>
gopacket 使用
查看>>
AlertDialog对话框
查看>>
我的友情链接
查看>>
办公室几台电脑怎么连一台打印机的具体步骤
查看>>
JavaScript注意事项
查看>>