Android开发之获取相册照片和获取拍照照片二
2016-02-24 11:38
316 查看
上一篇文章中讲解了照相机获取照片的时候遇到了可能取得的uri为null的状态,并给出了相应的解决方案,但是那种解决方案得到的图片是压缩过的,如果我们想得到相机拍摄出来的原照片,我们又应该怎样做呢?
其实方式很简单,在
Intent getImageByCamera = new Intent("android.media.action.IMAGE_CAPTURE");
之后我们直接讲文件先保存到指定的路径filepath,然后直接在
onActivityResult(int requestCode, int resultCode, Intent data)
中把filepath传递过去就行了。
[java] view
plain copy
private String capturePath = null;
[java] view
plain copy
protected void getImageFromCamera() {
String state = Environment.getExternalStorageState();
if (state.equals(Environment.MEDIA_MOUNTED)) {
Intent getImageByCamera = new Intent("android.media.action.IMAGE_CAPTURE");
String out_file_path = Constant.SAVED_IMAGE_DIR_PATH;
File dir = new File(out_file_path);
if (!dir.exists()) {
dir.mkdirs();
}
capturePath = Constant.SAVED_IMAGE_DIR_PATH + System.currentTimeMillis() + ".jpg";
getImageByCamera.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(capturePath)));
getImageByCamera.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1);
startActivityForResult(getImageByCamera, Constant.REQUEST_CODE_CAPTURE_CAMEIA);
}
else {
Toast.makeText(getApplicationContext(), "请确认已经插入SD卡", Toast.LENGTH_LONG).show();
}
}
在onActivityResult(int requestCode, int resultCode, Intent data)中我们只要把路径filepath定义为全局的变量传送过来就行了。
这样得到的图片是直接从相机中拍摄得到的照片,不会被压缩了。
其实方式很简单,在
Intent getImageByCamera = new Intent("android.media.action.IMAGE_CAPTURE");
之后我们直接讲文件先保存到指定的路径filepath,然后直接在
onActivityResult(int requestCode, int resultCode, Intent data)
中把filepath传递过去就行了。
[java] view
plain copy
private String capturePath = null;
[java] view
plain copy
protected void getImageFromCamera() {
String state = Environment.getExternalStorageState();
if (state.equals(Environment.MEDIA_MOUNTED)) {
Intent getImageByCamera = new Intent("android.media.action.IMAGE_CAPTURE");
String out_file_path = Constant.SAVED_IMAGE_DIR_PATH;
File dir = new File(out_file_path);
if (!dir.exists()) {
dir.mkdirs();
}
capturePath = Constant.SAVED_IMAGE_DIR_PATH + System.currentTimeMillis() + ".jpg";
getImageByCamera.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(capturePath)));
getImageByCamera.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1);
startActivityForResult(getImageByCamera, Constant.REQUEST_CODE_CAPTURE_CAMEIA);
}
else {
Toast.makeText(getApplicationContext(), "请确认已经插入SD卡", Toast.LENGTH_LONG).show();
}
}
在onActivityResult(int requestCode, int resultCode, Intent data)中我们只要把路径filepath定义为全局的变量传送过来就行了。
这样得到的图片是直接从相机中拍摄得到的照片,不会被压缩了。
相关文章推荐
- Android开发之获取相册照片和获取拍照照片
- Android之开发常用颜色
- Android平台的崩溃捕获机制及实现
- Android插件化开发 第一篇 [动态加载apk]
- Android 多线程 异步加载
- 世界级的安卓测试开发流!
- android Intent
- android根据原图片的路径得到该图片的缩略图
- Android tesseract-orc之扫描身份证号码
- Android tesseract-orc之扫描身份证号码
- Android 解决加载图片过多出现oom--强大的Fresco
- 理解Android系统的进程间通信原理(二)----RPC机制
- Android之仿网易V3.5新特性
- android studio 格式化代码 自动换行
- Android ScrollView只能添加一个子控件问题解决方法
- Android系统性能调优工具介绍
- android触摸屏事件手势操作滑动处理
- android中mainifest的一些属性
- Android技术图
- 老罗的那两年炼就的Android内功修养