android 手机拍照后获取图片导致OOM问题
来源:互联网 发布:淘宝怎么做分销 编辑:程序博客网 时间:2024/04/28 21:31
</pre>1.拍摄图片后获取的图片大小为 11M <p></p><p>通过一下方法获取到图片</p><pre name="code" class="java">Uri takePhotoUri = Uri.parse(android.provider.MediaStore.Images.Media.insertImage(getContentResolver(), f.getAbsolutePath(), null, null));但是有时候会导致OOM
2.所以改为在拍照的时候设置图片存储路径
private String mTakePhotoName; private void takePhoto() { String status = Environment.getExternalStorageState(); if (status.equals(Environment.MEDIA_MOUNTED)) { try { mTakePhotoName = System.currentTimeMillis() + ".png"; File dir = new File(Environment.getExternalStorageDirectory() + "/FollowMePhoto"); if (!dir.exists()) dir.mkdirs(); Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); File f = new File(dir, mTakePhotoName); Uri u = Uri.fromFile(f); intent.putExtra(MediaStore.Images.Media.ORIENTATION, 0); intent.putExtra(MediaStore.EXTRA_OUTPUT, u);// intent.putExtra(MediaStore.EXTRA_SIZE_LIMIT, 3 * 1024 ); startActivityForResult(intent, Constants.ActivityReturnReuqestCode.TAKE_PHOTO); } catch (ActivityNotFoundException e) {// Toast.makeText(PersonalInfoActivity.this, "没有找到储存目录", Toast.LENGTH_LONG).show(); e.printStackTrace(); } } else { } }
然后在返回中处理
String path = Environment.getExternalStorageDirectory() + "/FollowMePhoto"+"/" + mTakePhotoName; File f = new File(path); try { //检测图片是否旋转了,如果旋转,则旋转回来 int degree = PictureUtil.getBitmapDegree(path); if(degree != 0) { Bitmap bitmap = PictureUtil.rotateBitmapByDegree(BitmapUtil.getBitmap(path), degree); Uri takePhotoUri = UriUtil.getUriFromBitmap(this, bitmap); if(null != takePhotoUri) cropImageUri(takePhotoUri, Constants.ActivityReturnReuqestCode.HEAD_PORTRAIT_CROP); } else {// long pictureSize = f.getTotalSpace() / 1024 / 1024 / 1024; LogUtils.i("Picture size = " + pictureSize); LogUtils.i("Picture url = " + path); Uri takePhotoUri = Uri.parse("file:" + path);// Uri takePhotoUri = Uri.parse(android.provider.MediaStore.Images.Media.insertImage(getContentResolver(),// f.getAbsolutePath(), null, null)); cropImageUri(takePhotoUri, Constants.ActivityReturnReuqestCode.HEAD_PORTRAIT_CROP); } } catch (Exception e) { e.printStackTrace(); }这样就不会有第一种方式去处理Bitmap而产生的OOM呢,从选择图片到切图界面速度也会快一点。
0 0
- android 手机拍照后获取图片导致OOM问题
- android调用相机拍照后,导致OOM
- android拍照后图片路径的获取(解决不同手机存在拍照后旋转的问题)
- Android 解决部分手机拍照后获取的图片被旋转的问题
- android手机拍照后上传图片被旋转的问题
- android解决三星手机拍照获取图片的问题
- Android手机拍照后存储图片
- Android--使用手机拍照获取图片路径,小米手机选择照片问题处理
- Android 部分手机拍照完成后应用闪退获取不到图片
- android关于手机拍照图片旋转问题
- Android读取本地图片,图片太大导致OOM问题。
- android学习笔记----解决android有的手机拍照后上传图片被旋转的问题
- Android拍照后图片旋转问题
- 解决android有的手机拍照后上传图片被旋转的问题
- 解决android有的手机拍照后上传图片被旋转的问题 .
- 解决android有的手机拍照后上传图片被旋转的问题
- 解决android有的手机拍照后上传图片被旋转的问题
- Android:Camera的使用,并处理手机拍照后上传图片被旋转的问题
- 银行储蓄系统的可行性分析
- bzoj 1216 操作系统
- 黑马程序员——Java基础(七)之集合
- 常见的MySQL命令大全
- C#多线程编程
- android 手机拍照后获取图片导致OOM问题
- 启动虚拟机时报错----不能为虚拟电脑 1008 打开一个新任务.
- 258.Add Digits
- Android LayoutInflater原理分析
- 火云开发课堂 - 《使用Cocos2d-x 开发3D游戏》系列 第二十二节:地表漫游与寻路
- android 6.0不再提供org.apache.http.*
- 简单银行储蓄系统的可行性分析
- 30天自制操作系统之第17天 命令行窗口
- 关于linux的添加永久静态路由的static-routes方法