Android调用系统相机并得到图片两种方法

来源:互联网 发布:mac命令行安装mysql 编辑:程序博客网 时间:2024/05/17 07:45

如题,同时由于项目联系需要所写出的方法。

方法一的思路是根据返回的intent对象获取图片信息,代码如下:

intent.setAction(MediaStore.ACTION_IMAGE_CAPTURE);startActivityForResult(intent, REQ_CODE_CAMERA);

这两句代码即可通知Android系统打开相机,然后通过代码:

@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);if (resultCode == RESULT_OK) {Bundle mBundle = data.getExtras();Bitmap mBitmap = (Bitmap) mBundle.get("data");iv.setImageBitmap(mBitmap);}<span style="white-space:pre"></span>}

这样就可以给指定的ImageView设置图片了。


方法二的思路是在打开相机时,明确相机保存照片的路径,从路径在获取图片对象,代码如下:

imagePath = IMG_ROOT + File.separator + "IMG_" + System.currentTimeMillis() + ".jpg";Uri dst = Uri.fromFile(new File(imagePath));intent.setAction(MediaStore.ACTION_IMAGE_CAPTURE);// 相机照片存入dstUri对应的文件。intent.putExtra(MediaStore.EXTRA_OUTPUT, dst);// intent.putExtra("camerasensortype", 2); // 调用前置摄像头intent.putExtra("autofocus", true); // 自动对焦intent.putExtra("fullScreen", false); // 全屏intent.putExtra("showActionIcons", false);startActivityForResult(intent, REQ_CODE_CAMERA);

使用如上代码的设置,即可保证相机拍的新照片位置为imagePath的位置,然后通过路径就可以得到所获取的图片,可以使用

ImageFactory.decode(inputStream in)的方法获取Bitmap对象。输入流参数传入上面文件的文件输入流即可。



PS: 关于获取调用相机后得到的照片还有其他的办法,由于本人能力有限还未尝试完成,欢迎各位博友一起来探讨。

0 0
原创粉丝点击