- Android App开发进阶与项目实战
- 欧阳燊
- 482字
- 2022-07-27 17:18:49
1.4.2 功能分析
就人像裁剪功能而言,首先适当变换图片,把人像区域调整到屏幕中央,以便后续的裁剪操作。这些图片变换操作包括平移图片、旋转图片、水平翻转图片等。调整好人像位置后,再来裁剪指定的人像区域。为了方便观察待裁剪区域和其余的图片区域,可将待裁剪区域高亮显示,同时暗色显示其余的图片区域。
就人像装饰功能而言,可用于装饰的物品包括一段文字、图片标志、相框背景等。待装饰的人像图片由前一步骤的人像裁剪而来,装饰完成的人像图片需要支持保存到存储卡,从而实现大头贴的多次加工操作。
下面简单介绍一下随书源码picture模块中与大头贴有关的主要代码之间的关系:
(1)PortraitActivity.java:采集头像的活动页面,从原始图片裁剪指定的人像区域。
(2)PurikuraActivity.java:制作大头贴的活动页面,给采集来的头像添加各种装饰。
采集头像的时候,先把裁剪后的头像保存为图片文件(或称为图像文件),再将图片文件路径返回给制作页面,与之相关的结束采集的示例代码如下:
(完整代码见picture\src\main\java\com\example\picture\PortraitActivity.java)
装饰头像的时候,先调用setDrawingCacheEnabled方法开启绘图缓存,再调用getDrawingCache方法从绘图缓存获取位图对象,即可获得制作好的大头贴图片。与之相关的用于保存大头贴的示例代码如下:
(完整代码见picture\src\main\java\com\example\picture\PurikuraActivity.java)