解决Camera.parameter.setPreviewSize/Camera.parameter.setPictureSize适应不同手机问题
2014-04-14 11:05
501 查看
解决类:(当然这个也是套用大师的!)
import java.util.Collections; import java.util.Comparator; import java.util.List; import android.hardware.Camera; import android.hardware.Camera.Size; public class MyCamPara { private final CameraSizeComparator sizeComparator = new CameraSizeComparator(); private static MyCamPara myCamPara = null; private MyCamPara(){ } public static MyCamPara getInstance(){ if(myCamPara == null){ myCamPara = new MyCamPara(); return myCamPara; } else{ return myCamPara; } } public Size getPreviewSize(List<Camera.Size> list, int th){ Collections.sort(list, sizeComparator); Size size=null; for(int i=0;i<list.size();i++){ size=list.get(i); if((size.width>th)&&equalRate(size, 1.3f)){ break; } } return size; } public Size getPictureSize(List<Camera.Size> list, int th){ Collections.sort(list, sizeComparator); Size size=null; for(int i=0;i<list.size();i++){ size=list.get(i); if((size.width>th)&&equalRate(size, 1.3f)){ break; } } return size; } public boolean equalRate(Size s, float rate){ float r = (float)(s.width)/(float)(s.height); if(Math.abs(r - rate) <= 0.2) { return true; } else{ return false; } } public class CameraSizeComparator implements Comparator<Camera.Size>{ //按升序排列 @Override public int compare(Size lhs, Size rhs) { // TODO Auto-generated method stub if(lhs.width == rhs.width){ return 0; } else if(lhs.width > rhs.width){ return 1; } else{ return -1; } } } }
调用方法:
private static Size pictureSize,previewSize;
pictureSize= MyCamPara.getInstance().getPictureSize(parameter.getSupportedPictureSizes(), 800);
//预览大小
previewSize=MyCamPara.getInstance().getPreviewSize(parameter.getSupportedPreviewSizes(), display.getHeight());
if(previewSize!=null)
parameter.setPreviewSize(previewSize.width,previewSize.height);
if(pictureSize!=null)
parameter.setPictureSize(pictureSize.width,pictureSize.height);
相关文章推荐
- 自定义Camera的setPictureSize拍照完毕出现花屏怎么解决
- 解决不同类型手机系统照相机拍照无法确定返回问题
- android:用Camera拍照,解决某些手机利用自带相机崩溃的问题
- 一个手机自适应的网页效果解决显示页面很小的问题
- Android 不同手机的cpu架构不同导致的一系列第三方sdk调用出问题的解决办法
- Android 不同手机上安装app时,程序应用图标不一致的问题解决办法
- paint.setTextSize()根据不同手机分辨率设置字体大小
- 解决Android录制适配 setVideoSize 后start failed问题
- android拍照后图片路径的获取(解决不同手机存在拍照后旋转的问题)
- 解决ORA-02069: global_names parameter must be set to TRUE for this operation 问题
- 关于手机应用到Samsung Galaxy Tab屏幕的适应问题解决
- 解决移动端H5海报滑动插件适应大部分手机问题 手机端高度自适应
- 使用TextureView setTransform(Matrix)方法,解决Camera显示变形问题
- 自动横屏、滑盖(侧滑)手机的Camera相机设置问题(preView黑屏)
- 蓝桥杯-问题 1487: 不同单词个数统计(c++ set解决)
- Android Camera setRecordingHint(true)函数 在部分手机上的问题,例如拉伸,变形
- 解决不同手机屏幕下字体变大、变小的问题
- 解决struts2 下载中文名称乱码问题 适应不同三大主流浏览器 chrome28.0.1500.95、 firefox 23.0.1 、 IE11
- Camera.parames.setDisplayOrientation问题解决
- 解决Picasso占用内存,使用Picasso在加载超过2M左右的图片时完全不能显示图片问题(不同的手机可能不同)