前言

最近用PathmoveTolineToquadTo,也想整理一下,但看到网上已经有人整理了,就摘抄于此,方便自己查阅。

好记性不如烂笔头

正文

一下内容摘抄的,原文请访问文末连接。

moveTo

moveTo 不会进行绘制,只用于移动移动画笔。

就看做移动光标吧。

lineTo

画线

mPath.lineTo(300, 300);
canvas.drawPath(mPath, mPaint);

参数中的(300,300)是线的结束点,开始的位置就是看mPath的位置初始位置,如果没有moveTo,那么位置就是原点(0,0)。

比如:

mPath.moveTo(100, 100);
mPath.lineTo(300, 300);
canvas.drawPath(mPath, mPaint);

上面操作后,此时的画线的开始点是(100,100)结束点是(300,300)

quadTo

quadTo 用于绘制圆滑曲线,即贝塞尔曲线。

mPath.quadTo(x1, y1, x2, y2)

(x1,y1) 为控制点,(x2,y2)为结束点。

PS: 第一个是控制点咯,这个很重要。原点还是画笔的上一个结束点。

mPath.moveTo(100, 500);  // 原点
mPath.quadTo(300, 100, 600, 500);   // 控制点和结束点
canvas.drawPath(mPath, mPaint);

cubicTo

cubicTo 同样是用来实现贝塞尔曲线的。

mPath.cubicTo(x1, y1, x2, y2, x3, y3)

(x1,y1) 为控制点,(x2,y2)为控制点,(x3,y3) 为结束点。

至于跟quadTo的区别,大概是多了一个控制点。

arcTo

arcTo 用于绘制弧线(实际是截取圆或椭圆的一部分)。

mPath.arcTo(ovalRectF, startAngle, sweepAngle)

ovalRectF为椭圆的矩形,startAngle 为开始角度,sweepAngle 为结束角度。

举个例子

mRectF = new RectF(10, 10, 600, 600);
mPath.arcTo(mRectF, 0, 90);
canvas.drawPath(mPath, mPaint);

由于new RectF(10, 10, 600, 600)为正方形,又截取 0 ~ 90 度 ,则所得曲线为四分之一圆的弧线。

参考文章

  1. Android中moveTo、lineTo、quadTo、cubicTo、arcTo详解(实例)

版权声明 1、 本站名称: 91易搜
2、 本站网址: 91es.com3xcn.com
3、 本站内容: 部分来源于网络,仅供学习和参考,若侵权请留言
3、 本站申明: 个人流水账日记,内容并不保证有效

暂无评论

暂无评论...

随机推荐

[转]android NTP时间同步

推荐使用 极客导航:极客导航(http://www.91es.com/jike.html)相关文件:frameworks/base/services/java/com/android/server/SystemServer.javaframeworks/base/services/j...

Android6.0Settings分析

源码:Android 6.0应用:Settings目录:android-6.0.0_r1\packages\apps\Settings Android 中Settings的代码很多,我这里只是简单分析一下,仅供参考。如果要深入了解设置,自己要多看看源码。一般分析应用的话...

[摘]AudioTrack简单简介之一

1.1、什么是PCM脉冲编码调制(Pulse Code Modulation,PCM),它的作用是把一个时间连续,取值连续的模拟信号变换成时间离散,取值离散的数字信号后在信道中传输。脉冲编码调制就是对模拟信号先抽样,再对样值幅度量化,编码的过程。pcm是一个通信上的概念,脉冲编码调制,是编码。w...

JNI调用Java方法

前言前几天我们JNI的使用介绍过《JNI动态注册》和《JNI静态注册》,都是介绍Java的native方法,也就Java调用C或C++中的方法。今天就介绍C或C++调用Java方法。记录于此,方便自己查阅。正文还是在之前基础上改,这里以《JNI动态注册》代码未基础,动态注册很方便和很简单。...

kernel logo到动画间闪黑屏

推荐使用 读书导航 极客导航 :125啦极客导航(http://www.91es.com/jike.html)最近在Android 6.0时出现logo过度到Android动画时出现闪一下和黑屏问题。查询资料后,在《kernel logo到开机动画之间闪现黑屏(android 5.X)》找到了解...

DisplayMetrics获取宽高不对

前言Android P项目开发时,获取的屏幕高度存在误差,之前项目中获取的高度都是固定的,后面为了适配各种项目,改为了动态获取屏幕高宽。记录于此,方便自己查阅。好记性不如烂笔头正文Android 版本 : Android P获取的屏幕高度错误adb shell wm size#打...