如题,同时由于项目联系需要所写出的方法。
方法一的思路是根据返回的intent对象获取图片信息,代码如下:
intent.setAction(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, REQ_CODE_CAMERA);
这两句代码即可通知Android系统打开相机,然后通过代码:
@Override
protected 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: 关于获取调用相机后得到的照片还有其他的办法,由于本人能力有限还未尝试完成,欢迎各位博友一起来探讨。