解决Camera.parameter.setPreviewSize/Camera.parameter.setPictureSize适应不同手机问题
来源:互联网 发布:宿舍网络搭建 编辑:程序博客网 时间:2024/06/08 03:38
解决类:(当然这个也是套用大师的!)
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>{//按升序排列@Overridepublic int compare(Size lhs, Size rhs) {// TODO Auto-generated method stubif(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);
0 0
- 解决Camera.parameter.setPreviewSize/Camera.parameter.setPictureSize适应不同手机问题
- 关于Android的Camera的Parameter
- 手机 camera
- Parameter
- Android视频录制从不入门到入门系列教程(四)————Camera Parameter
- IllegalArgumentException occured : Parameter value [camera]was not matching type [java.lang.Double]
- Parameter... parameter
- 解决QuartusII编译parameter "clk0_divide_by" is not a formal parameter of instantiated module的问题
- android:用Camera拍照,解决某些手机利用自带相机崩溃的问题
- ADOQuery的Parameter问题
- SET PARAMETER ID问题
- 解决camera的两个小问题
- 解决camera 旋转90度问题
- 解决Camera预览时倒立的问题
- Android解决SurfaceView预览Camera拉伸问题
- 解决SurfaceView预览Camera拉伸问题
- camera
- Camera
- Linux动态库与静态库的制作
- 冒泡算法
- Android利用ContentResolver查询的三种方式
- Linux设备驱动之HID驱动
- 恢复百度云盘本地误删的文件脚本---python
- 解决Camera.parameter.setPreviewSize/Camera.parameter.setPictureSize适应不同手机问题
- sip over tcp or udp
- 怎么让背景图不随页面滚动
- 关于数据库的链接查询
- 无线网络安全攻防
- 约瑟夫环问题
- 数据库JDBC驱动及URL介绍
- scp
- CountDownLatch用法