android 自定义照相机Camera黑屏
来源:互联网 发布:java猜数游戏界面代码 编辑:程序博客网 时间:2024/05/01 21:29
对于一些手机,像HTC,当自定义Camera时,调用Camera.Parameters的 parameters.setPreviewSize(width, height)方法时,如果width和height为奇数情况下,则会出现黑屏现象,解决办法可参考SDK提供的ApiDemos中关于Camera的 例子:
List<Size> sizes = parameters.getSupportedPreviewSizes();
Size optimalSize = getOptimalPreviewSize(sizes, w, h);
parameters.setPreviewSize(optimalSize.width, optimalSize.height);
同时,在HTC手机中,设置parameters.setPictureSize(width,height)属性,也会导致黑屏,而在三星手机上则没有问题。还有如果设置setPreviewSize属性的宽高错误的话,拍出的照片也会存在失真等Bug,所以遇到适配问题时,最好的办法就是不设置PreviewSize和PictureSize属性。
getOptimalPreviewSize方法
private Size getOptimalPreviewSize(List<Size> sizes, int w, int h) {
final double ASPECT_TOLERANCE = 0.05;
double targetRatio = (double) w / h;
if (sizes == null)
return null;
Size optimalSize = null;
double minDiff = Double.MAX_VALUE;
int targetHeight = h;
// Try to find an size match aspect ratio and size
for (Size size : sizes) {
double ratio = (double) size.width / size.height;
if (Math.abs(ratio - targetRatio) > ASPECT_TOLERANCE)
continue;
if (Math.abs(size.height - targetHeight) < minDiff) {
optimalSize = size;
minDiff = Math.abs(size.height - targetHeight);
}
}
// Cannot find the one match the aspect ratio, ignore the requirement
if (optimalSize == null) {
minDiff = Double.MAX_VALUE;
for (Size size : sizes) {
if (Math.abs(size.height - targetHeight) < minDiff) {
optimalSize = size;
minDiff = Math.abs(size.height - targetHeight);
}
}
}
return optimalSize;
}
- android 自定义照相机Camera黑屏
- android 自定义照相机Camera…
- Android Camera照相机
- android camera 照相机/摄像机
- Android Camera照相机
- Android照相机Camera
- Android照相机拍照Camera
- android之 照相机 Camera
- Android-Camera(照相机)实例
- Android自定义照相机实现
- Android自定义照相机注意事项
- android 自定义照相机
- Android自定义简易照相机
- Android 自定义照相机
- Android 照相机Camera 调用系统照相机返回data为空
- android源码解析 ---- camera 照相机 摄像机
- android源码解析 ---- camera 照相机 摄像机 .
- android源码解析—-camera 照相机 摄像机
- 各种流行的编程风格,你会是哪种呢?
- struts2从form取值的三种方式
- Android 开源框架
- 被误解的C++——汉尼拔
- 数理逻辑:命题逻辑(8)完全范式
- android 自定义照相机Camera黑屏
- Hadoop集群配置详解
- Linux网络编程必看书籍推荐
- 数理逻辑:命题逻辑(9)马尔采夫定理
- List Control中常用的操作函数
- 数理逻辑:命题逻辑(10)公理理论
- 【Java】设置HttpClient代理
- Java程序员从笨鸟到菜鸟之(九十八)深入java虚拟机(七)深入源码看java类加载器ClassLoader
- 数理逻辑:命题逻辑(11)多值逻辑