没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
# Android Canvas 变换
## 1 范围裁切
### 1.1 clipRect
按方形裁切
```java
canvas.save();
canvas.clipRect(left, top, right, bottom);
canvas.drawBitmap(bitmap, x, y, paint);
canvas.restore();
```
> 要加上`Canvas.save()`和`Canvas.restore()`来及时恢复绘制范围
![clip](../../../attachments/Android/绘制/007-clip.png)
### 1.2 clipPath
按 Path 裁切,可以裁切更多形状
```java
canvas.save();
canvas.clipPath(path1);
canvas.drawBitmap(bitmap, point1.x, point1.y, paint);
canvas.restore();
canvas.save();
canvas.clipPath(path2);
canvas.drawBitmap(bitmap, point2.x, point2.y, paint);
canvas.restore();
```
![clip-path](../../../attachments/Android/绘制/007-clip-path.png)
## 2 几何变换
几何变换的使用大概分为三类:
1. 使用 **Canvas** 来做常见的二维变换;
2. 使用 **Matrix** 来做常见和不常见的二维变换;
3. 使用 **Camera** 来做三维变换。
### 2.1 Canvas 变换
#### 2.1.1 平移
```java
canvas.save();
canvas.translate(200, 0);
canvas.drawBitmap(bitmap, x, y, paint);
canvas.restore();
```
![translate](../../../attachments/Android/绘制/007-translate.png)
#### 2.1.2 旋转
```java
canvas.save();
canvas.rotate(45, centerX, centerY);
canvas.drawBitmap(bitmap, x, y, paint);
canvas.restore();
```
![rotate](../../../attachments/Android/绘制/007-rotate.png)
#### 2.1.3 缩放
```java
canvas.save();
canvas.translate(200, 0);
canvas.drawBitmap(bitmap, x, y, paint);
canvas.restore();
```
![scale](../../../attachments/Android/绘
点击阅读更多
资源评论
光与火花
- 粉丝: 25
- 资源: 335
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功