android自定义相机黑屏问题
2013-05-29 11:05
501 查看
对于一些手机,像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方法
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; }
相关文章推荐
- 解决自定义cpp类编译到Android运行黑屏问题
- 编译类【COCOS2DX-LUA 脚本开发之十四】解决自定义CPP类通过TOLUA++ BINDING LUACOCOS2D后编译到ANDROID运行黑屏(没有调用自定义CPP类)的问题!
- android开发自定义相机镜像问题
- Android 自定义前置相机(三星手机拍照时照片旋转90度问题)
- 【COCOS2DX-LUA 脚本开发之十四】解决自定义CPP类编译到ANDROID运行黑屏的问题!
- [置顶] Android 自定义相机黑屏
- Android开发之自定义相机设定照片和预览参数问题
- Android自定义相机拍摄黑屏
- Android中关于自定义相机预览界面拉伸问题
- 关于android自定义的相机问题
- 【COCOS2DX-LUA 脚本开发之十四】解决自定义CPP类通过TOLUA++ BINDING LUACOCOS2D后编译到ANDROID运行黑屏(没有调用自定义CPP类)的问题!
- android自定义相机若干问题解决方案
- 【COCOS2DX-LUA 脚本开发之十四】解决自定义cpp类通过tolua++ binding LuaCocos2d后编译到Android运行黑屏(没有调用自定义cpp类)的问题!
- 【COCOS2DX-LUA 脚本开发之十四】解决自定义CPP类通过TOLUA++ BINDING LUACOCOS2D后编译到ANDROID运行黑屏(没有调用自定义CPP类)的问题!
- 【重头学习Android】关于自定义相机后照相旋转问题终极解决方案
- Android 自定义相机 Camera 图片方向问题
- android 自定义相机旋转问题解决及照片自动旋转问题解决
- Android 自定义相机(录像) 解决预览 照片方向问题
- android SoftKeypad 软键盘的问题及自定义软键盘中Enter键和其相应事件
- 解决Activity启动黑屏及设置android:windowIsTranslucent不兼容activity切换动画问题