Android调用系统相机拍照像素太低以及内存溢出问题
来源:互联网 发布:淘宝首页模板制作 编辑:程序博客网 时间:2024/05/03 06:33
在Android移动开发过程中,如果直接按照原生方式进行拍照经常会出现像素太低(可能只有几十KB),照片非常模糊的问题。
Activity中启动相机的代码:
Intent openCameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);startActivityForResult(openCameraIntent, RESUEST_PHOTO);
在返回结果的onActivityResult中直接通过Bitmap bm = (Bitmap) data.getExtras().get(“data”)获取相片:
protected void onActivityResult(int requestCode, int resultCode, Intent data){ super.onActivityResult(requestCode, resultCode, data); if (requestCode==RESUEST_PHOTO ) { switch (requestCode) { case RESUEST_PHOTO: if (resultCode == RESULT_OK) { String fileName = String.valueOf(System.currentTimeMillis()); Bitmap bm = (Bitmap) data.getExtras().get("data"); break; default: break; } } }
对于这个问题,有一种解决方式是按照xcymorningsun的方法,先将拍得的照片临时保存在本地,在onActivityResult方法中再将图片取出,并经过缩小处理再显示在界面上或将原图上传给服务器。
这种方法对于单张相片有比较好的效果,但对于多张相片则会报出OutOfMemory异常问题。关于OutOfMemory异常问题,cctcc的博客有过比较详细的介绍,有三个需要注意的地方:第一,加载缩略图的时候不要直接使用原始图片;第二,图片使用后要通过recycle()进行资源回收。
回到最初的问题,如果我们想要像微信朋友圈一样连续拍摄多张图片并进行展示的话,应该怎么做呢?
一种解决思路是拍照的时候就将照片保存在本地,并且留出相片的保存地址。之后要展示缩略图或者上传原图就直接调用该地址,此时用到的方法就和在相册中选取相片的方法一样了。具体代码如下。
现定义照片存放的路径:
private String path = "";
启动相机:
Intent openCameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); File file = new File(Environment.getExternalStorageDirectory() + "/myimage/", String.valueOf(System.currentTimeMillis()) + ".jpg"); path = file.getPath(); Uri imageUri = Uri.fromFile(file); openCameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri); startActivityForResult(openCameraIntent, TAKE_PICTURE);
最后在onActivityResult中将照片路径添加到照片路径集中即可。
protected void onActivityResult(int requestCode, int resultCode, Intent data) { switch (requestCode) { case TAKE_PICTURE: if (Bimp.drr.size() < 9 && resultCode == -1) { Bimp.drr.add(path); } break; } }
其中Bimp.drr是ArrayList类型变量。有了照片路径,之后想要对照片进行什么操作就很容易了。照片使用完后如果不再需要的话记得将其删除。
0 2
- Android调用系统相机拍照像素太低以及内存溢出问题
- android调用系统相机像素过低
- 调用Android相机拍照,解决了拍照时候内存溢出溢出的问题
- android调用系统相册选图或相机拍照后对图片进行剪切无内存溢出支持7.0
- android 调用系统相机拍照
- android调用系统相机拍照
- android调用系统相机拍照
- Android调用系统相机拍照
- Android 调用系统相机拍照
- Android 调用系统相机拍照
- android开发那些事儿(四)--调用系统相机像素过低
- Android 调用系统相机拍照并且显示在相册中,以及中间可能会遇到的一些问题的解决
- Android调用相机拍照返回图片太小
- Android 调用系统相机拍照保存以及调用系统相册的方法
- Android 调用系统相机拍照保存以及调用系统相册的方法
- Android 调用系统相机拍照保存以及调用系统相册的方法
- Android 调用系统相机拍照保存以及调用系统相册的方法
- Android 调用系统相机拍照保存以及调用系统相册的方法
- 大数据系列修炼-Scala课程31
- bzoj 1925: [Sdoi2010]地精部落(dp)
- Android逆向破解之Mointor查看目标日志
- Android中的Shape使用总结
- 大数据系列修炼-Scala课程32
- Android调用系统相机拍照像素太低以及内存溢出问题
- 文件过滤器
- Strom中IBasicBolt与IRichBolt的区别
- POJ1004
- android AdapterViewFlipper的简单使用——主要参考《android疯狂讲义》
- 概率论 —— 分析计算机系统和网络的可靠性和通用性
- linux下首次安装软件--lrzsz(上传下载)
- Android中的Selector的用法
- LeetCode #153: Find Minimum in Rotated Sorted Array