相机拍照照片不清晰
如今的APP一般都会带有拍照功能,那么我们最好对拍照进行一个封装。取相机拍到的照片有两种,一种是调起相机拍完取得,另一种就是直接从图库取得。
- 图库取照片
- 相机拍照取照片
图库取照片
相信图库的调用方法都一样,没有出入。
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setType("image/*");
startActivityForResult(Intent.createChooser(intent, "选择图片"),
FILECHOOSER_RESULTCODE);
相机拍照取照片
相机拍照往往都是如下
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
调用完后在onActivityResult取得照片数据是data.getExtras().get("data"),但是这样的照片是不清楚的。
所以我寻找了一种解决办法。
通过拍完保存到本地路径的方式获取一个Uri来取得清晰的照片
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
take_pic_uri = Uri.fromFile(new File(Environment.getExternalStorageDirectory(),
String.valueOf(System.currentTimeMillis()) + ".jpg"));
intent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, take_pic_uri);
startActivityForResult(intent, REQUEST_SELECT_TAKE_PICTURE);
这之后在onActivityResult中取take_pic_uri的照片就是清晰的了。
网友评论