码迷,mamicode.com
首页 > 移动开发 > 详细

android开发——camera类拍照指定图片大小

时间:2015-07-23 13:57:55      阅读:149      评论:0      收藏:0      [点我收藏+]

标签:android   camera   

android拍照开发

android开发实现拍照功能主要有两种方法:

  • 直接调用系统照相机API实现拍照,拍完后,图片会保存在相册中,返回保存照片的路径,从而获取图片。
  • 自己写SurfaceView调用camera来实现拍照,该方法触发一个回调,参数中包含一个图片字节数组,从而获取图片。

问题
当我们自定义相机时,需求需要指定拍照图片大小,然而不同手机会默认返回不同分辨率照片。所以需要对camera进行参数设置。通过设置setPictureSize,代码:

// 获得相机参数
Camera.Parameters parameters = camera.getParameters();
parameters.setPictureSize((480, 360);

结果在P8上,直接运行停止。


方案:
所以不能在camera里给他固定一个特定分辨率大小。Camera.Parameters类的方法getSupportedPictureSizes(),该方法返回一个List,包含所有支持的尺寸。根据取到的值,自己算出最适合自己的尺寸。

List<Size> list = parameters.getSupportedPictureSizes();
    Camera.Size size = list.get(0);
    parameters.setPictureSize(size.width, size.height);
    camera.setParameters(parameters);

我这里是取list里的第一个,分辨率大小为最小。如果取最大,测试发现拍照速度太慢。
getSupportedPictureSizes()返回的集合是排序的,但升序还是降序,也是根据手机来返回的,所以在处理的时候,不能盲目取第一个元素。大家也可以去中间值等等。

版权声明:本文为博主原创文章,未经博主允许不得转载。

android开发——camera类拍照指定图片大小

标签:android   camera   

原文地址:http://blog.csdn.net/zhoubin1992/article/details/47020071

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!