在Android开发中,实现拍照、选择图片以及图片剪裁的功能是常见的需求。这篇文章详细介绍了如何处理不同版本间的兼容性问题,特别是在Android 4.4之前的Uri格式与之后的变化,以及提供相应的代码示例。 1. **拍照和选择图片** - **选择图片**:通过创建一个`Intent`,设置其动作类型为`ACTION_GET_CONTENT`,并指定数据类型为`"image/*"`,这样可以打开系统的图库让用户选择图片。然后启动一个请求,使用`startActivityForResult()`方法,将请求码设为`GALLERY_REQUEST_CODE`。当用户选择图片后,`onActivityResult()`方法会回调,通过解析返回的`Intent`中的数据来获取选中的图片。 - **拍照**:同样,创建一个`Intent`,这次使用`ACTION_IMAGE_CAPTURE`来触发相机。启动请求时,使用`CAMERA_REQUEST_CODE`作为请求码。拍照完成后,通过检查返回的`Intent`中的数据,获取拍摄的Bitmap,并将其保存为Uri以便后续操作。 2. **处理系统传回的值** - 定义常量`CAMERA_REQUEST_CODE`, `GALLERY_REQUEST_CODE`和`CROP_REQUEST_CODE`分别对应相机、图库和剪裁操作的请求码。在`onActivityResult()`方法中,根据请求码判断来自哪个操作: - 如果是相机,检查`data`是否为空,如果空则返回。否则,从`extras`中获取拍摄的Bitmap,并调用`saveBitmap()`函数保存图片,然后启动`startImageZoom()`函数展示图片。 - 对于图库选择,如果`data`为空,则表示用户未选择图片,直接返回。获取`data.getData()`得到的Uri,并转换成`fileUri`,然后启动`startImageZoom()`。 - 剪裁操作后,检查`data`是否为空,如果为空则返回。从`extras`中获取剪裁后的数据进一步处理。 3. **Uri格式兼容性** 版本4.4之前和之后的Uri格式变化可能导致兼容性问题。确保代码针对这两种情况都进行了适配,比如可能需要对Uri进行转换或者检查其格式以适应不同版本的需求。 本文提供了Android开发中拍照、选择图片和剪裁功能的完整流程,包括处理不同版本的Uri格式,以及在用户操作完成后如何正确地接收和处理返回的数据。开发者可以根据这些代码片段进行修改和扩展,以满足项目需求。
下载后可阅读完整内容,剩余4页未读,立即下载
- 粉丝: 4
- 资源: 923
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 十种常见电感线圈电感量计算公式详解
- 军用车辆:CAN总线的集成与优势
- CAN总线在汽车智能换档系统中的作用与实现
- CAN总线数据超载问题及解决策略
- 汽车车身系统CAN总线设计与应用
- SAP企业需求深度剖析:财务会计与供应链的关键流程与改进策略
- CAN总线在发动机电控系统中的通信设计实践
- Spring与iBATIS整合:快速开发与比较分析
- CAN总线驱动的整车管理系统硬件设计详解
- CAN总线通讯智能节点设计与实现
- DSP实现电动汽车CAN总线通讯技术
- CAN协议网关设计:自动位速率检测与互连
- Xcode免证书调试iPad程序开发指南
- 分布式数据库查询优化算法探讨
- Win7安装VC++6.0完全指南:解决兼容性与Office冲突
- MFC实现学生信息管理系统:登录与数据库操作