Android开发之Path详解

本文介绍了Path的作用,它可绘制简单和复杂图形,还用于绘制文本和剪裁画布。阐述了Path含义,其封装几何路径。重点讲解了Path使用方法,如lineTo用于连线,moveTo和setLastPoint虽有相似但不同,并给出了相应代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(https://blog.csdn.net/xiangzhihong8/article/details/78278931)

1.Path作用:使用Path不仅能够绘制简单图形,也可以绘制这些比较复杂的图形。另外,根据路径绘制文本和剪裁画布都会用到Path。

2.Path含义:Path封装了由直线和曲线(二次,三次贝塞尔曲线)构成的几何路径。你能用Canvas中的drawPath来把这条路径画出来(同样支持Paint的不同绘制模式),也可以用于剪裁画布和根据路径绘制文字。我们有时会用Path来描述一个图像的轮廓,所以也会称为轮廓线(轮廓线仅是Path的一种使用方法,两者并不等价)

3.Path使用方法详解:

moveTo、 setLastPoint、 lineTo 和 close

(1)lineTo:

方法预览:

public void lineTo (float x, float y)

首先讲解的的LineTo,为啥先讲解这个呢?

是因为moveTo、 setLastPoint、 close都无法直接看到效果,借助有具现化效果的lineTo才能让这些方法现出原形。

lineTo很简单,只有一个方法,作用也很容易理解,line嘛,顾名思义就是一条线。

再仔细一看,这个lineTo除了line外还有一个to呢,to翻译过来就是“至”,到某个地方的意思,lineTo难道是指从某个点到参数坐标点之间连一条线?

没错,你猜对了,但是这某个点又是哪里呢?

前面我们提到过Path可以用来描述一个图像的轮廓,图像的轮廓通常都是用一条线构成的,所以这里的某个点就是上次操作结束的点,如果没有进行过操作则默认点为坐标原点。

canvas.translate(mWidth / 2, mHeight / 2);  // 移动坐标系到屏幕中心(宽高数据在onSizeChanged中获取)

Path path = new Path();                     // 创建Path

path.lineTo(200, 200);                      // lineTo

path.lineTo(200,0);

canvas.drawPath(path, mPaint);              // 绘制Path

(2)moveTo 和 setLastPoint:

方法预览:

        // moveTo

        public void moveTo (float x, float y)

 

        // setLastPoint

        public void setLastPoint (float dx, float dy)

 

这两个方法虽然在作用上有相似之处,但实际上却是完全不同的两个东东,具体参照下表:

 

方法名

简介

是否影响之前的操作

是否影响之后操作

moveTo

移动下一次操作的起点位置

setLastPoint

设置之前操作的最后一个点位置

 

直接上代码:

        canvas.translate(mWidth / 2, mHeight / 2);  // 移动坐标系到屏幕中心

        Path path = new Path();                     // 创建Path

        path.lineTo(200, 200);                      // lineTo

        path.moveTo(200,100);                       // moveTo

        path.lineTo(200,0);                         // lineTo

        canvas.drawPath(path, mPaint);

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值