Android读取本地图库与调用摄像头拍摄
Android读取本地图库与调用摄像头拍摄是移动应用开发中非常重要的功能之一。本文将详细介绍如何读取Android本地图库的图片,以及如何调用安卓的摄像头进行拍摄。
一、布局
在Android应用程序中,布局是非常重要的一部分。对于读取本地图库与调用摄像头拍摄,布局比较简单。MainActviivty的布局文件只有两个按钮,一个是读取图库的,另一个是打开摄像头的。ResultActivity的布局只有一个ImageView,用于显示所选择的图片或者所拍摄的图片。
二、读取图库
读取本地图库需要使用Intent这个类,主要用于不同Activity之间的通讯。首先需要设置返回码,标识本地图库,然后实例化Intent,传入ACTION_PICK,表示从Item中选取一个数据返回。接着设置Data和Type属性,前者是URI,表示系统图库的URI,后者是MIME码。启动这个intent所指向的Activity。
三、摄像头拍摄照片
摄像头拍摄照片需要使用MediaStore.ACTION_IMAGE_CAPTURE这个action,指向一个照相机app。首先需要设置返回码,标志照相机拍摄,然后设置一个临时路径,保存所拍的照片。接着,传入ACTION_IMAGE_CAPTURE,创建File并获取它的URI值,并将MediaStore.EXTRA_OUTPUT为字符串"output",即将该键值对放进intent中。启动这个intent所指向的Activity。
四、设置回调方法
由于运行了startActivityForResult()方法,所以需要设置一个回调方法,获取在其他应用中选择的数据。在onActivityResult()方法中,首先需要判断requestCode是否等于RESULT_IMAGE或RESULT_CAMERA,然后获取返回的数据,并将其处理。
知识点:
1. Intent的使用:Intent是Android中非常重要的组件,用于不同Activity之间的通讯。在读取本地图库与调用摄像头拍摄中,Intent扮演着关键的角色。
2. Uri的使用:Uri是Android中用于表示资源的标识符。在读取本地图库与调用摄像头拍摄中,Uri用于表示系统图库的URI和临时路径。
3. MediaStore的使用:MediaStore是Android中用于存储和检索多媒体数据的组件。在读取本地图库与调用摄像头拍摄中,MediaStore用于获取系统图库的URI和拍摄照片的临时路径。
4. onActivityResult()的使用:onActivityResult()方法是用于获取在其他应用中选择的数据的回调方法。在读取本地图库与调用摄像头拍摄中,onActivityResult()方法用于获取返回的数据,并将其处理。
5. ContentResolver的使用:ContentResolver是Android中用于访问ContentProvider的组件。在读取本地图库与调用摄像头拍摄中,ContentResolver用于查询返回的数据。
6. Cursor的使用:Cursor是Android中用于存储和检索数据的组件。在读取本地图库与调用摄像头拍摄中,Cursor用于将cursor指针移动到数据首行,并获取字段名为_data的数据。
7. 文件路径的使用:文件路径是Android中用于表示文件位置的字符串。在读取本地图库与调用摄像头拍摄中,文件路径用于表示临时路径和系统图库的URI。
读取本地图库与调用摄像头拍摄是Android应用开发中非常重要的功能之一。了解 Intent、Uri、MediaStore、onActivityResult()、ContentResolver、Cursor和文件路径的使用,是开发高质量的Android应用程序的关键。