Android调用相机
在现在很多android软件都涉及到相机的调用以及图像的处理,可以说如何调用android设备自带的相机是很多软件的基础。笔者上网查了一下关于android相机的调用,发现资料有很多,有些主要讲解了调用相机的过程以及代码,却很少涉及到相机调用中可能遇到的问题。笔者最近正在开发一款图像识别的app涉及到相机的使用,也遇到了很多的问题,这里笔者把步骤以及遇到的一些问题整理出来,希望对大家有所帮助。由于笔者实力有限,如果有些遗漏或者错误的地方,欢迎大家批评指出,一起学习交流。
1.调用相机的方式
相机在andorid开发中主要有两种调用方式:1.系统相机。2.自定义相机。
所谓调用系统相机,就是指app直接使用系统自带的相机,十分的方便简洁,但是不能满足很多app的需求。自定义相机就是自己设置相机参数,自己设计相机界面以及图片的保存,灵活性很大,被很多优秀的app采用,而且没有界面的切换,用户的体验会更好。以下主要讲解这两种调用方式。
1.1调用系统相机
调用系统相机是比较简单的,直接使用intent即可,代码如下。
Intent intent = new Intent();
intent.setAction(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, imageFileUri);//imageFileUri为你储存位置的Uri
startActivityForResult(intent, SYSTEM_CAMERA_REQUESTCODE);//SYSTEM_CAMERA_REQUESTCODE为要求码,具体的使用方式详见startActivityForResult()函数的使用方式
对于很多新手来说,看一下startActivityForResult()是很有必要的。这里我给大家一个参考的博客,个人感觉写的还是很好的:http://www.cnblogs.com/lijunamneg/archive/2013/02/05/2892616.html。
这里笔者主要想讲解的是自定义相机,故系统相机叙述比较省略(几乎不会遇到什么问题),具体大家可以参考博客:http://http://www.cnblogs.com/mengdd/archive/2013/03/31/2991932.html。
这里唯一你可能会遇到的问题应该只有对应的权限忘记开启。这里要开启的permission主要有相机的permisson和储存的permission。