前言

最近用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、 本站名称: 笔友城堡
2、 本站网址: https://www.biumall.com/
3、 本站部分文章来源于网络,仅供学习与参考,如有侵权,请留言

暂无评论

暂无评论...

随机推荐

Android 6.0 Settings源码简单分析之蓝牙(2)

上一篇《Android 6.0 Settings源码简单分析之蓝牙(1)》我们只是简单的介绍了蓝牙的界面和流程的启动,讲得比较粗糙,这次我们继续深入讨论蓝牙,设计Framework的代码源码:Android 6.0应用:Settings 和 Framework(权且看做一个应用吧^_^...

[摘]Android IO流读写文件实例

继前文摘抄,此篇是Android IO读写的实例操作。案例0功能:1、创建文件夹、文件 2、遍历文件夹下面的所有文件public class Test1 {      public static void main(String[] args) {          // TOD...

Android内置应用更新或升级后被还原

推荐使用 极客导航 :125啦极客导航(http://www.biumall.com/jike.html)最近被第三方软坑了一下,断电后软件又回去了,一直说是我这边的问题。好了,最后看到网上大牛也分析过,因此摘抄于此,记录一下。如果更新或者升级后系统内置应用,遇到重启Android系统后内置应...

郑振铎:月夜之话

是在山中的第三夜了。月色是皎洁无比,看着她渐渐地由东方升了起来。蝉声唧——唧——唧——地曼长地叫着,岭下涧水潺潺的流声,隐略地可以听见,此外,便什么声音都没有了。月如银的圆盘般大,静定地挂在晚天中,星没有几颗,疏朗朗的间缀于蓝天中,如美人身上披着蓝天鹅绒的晚衣,缀了几颗不规则的宝石。大家都把自己的...

隐藏Settings菜单的几种方法

此文章是摘抄的,作为影藏系统设置中的部分选项还是有效的。本文修改基于mtk6.0系统隐藏一个一级菜单源码位置 packages/apps/Settings/src/com/android/settings/SettingsActivity.java; private int[] S...

替换preg_replace

推荐使用 读书导航 极客导航 :125啦极客导航(http://www.biumall.com/jike.html)PHP版本升级后preg_replace过期了,虽然都可以用,为了安全考虑,PHP官方推荐使用preg_replace_callback替代。php手册(PHP 4 >= ...