Android 相机预览尺寸问题
我正在开发一个自定义相机应用程序,我面临着设置相机预览大小的问题。问题是摄影机预览不会保持纵横比,因此预览看起来会向两侧拉伸 我用于计算最佳尺寸的代码:Android 相机预览尺寸问题,android,camera,Android,Camera,我正在开发一个自定义相机应用程序,我面临着设置相机预览大小的问题。问题是摄影机预览不会保持纵横比,因此预览看起来会向两侧拉伸 我用于计算最佳尺寸的代码: private Camera.Size getOptimalPreviewSize(List<Camera.Size> sizes, int w, int h) { final double ASPECT_TOLERANCE = 1; double targetRatio=(double)w /
private Camera.Size getOptimalPreviewSize(List<Camera.Size> sizes, int w, int h) {
final double ASPECT_TOLERANCE = 1;
double targetRatio=(double)w / h;
if (sizes == null){
return null;
}
Camera.Size optimalSize = null;
double minDiff = Double.MAX_VALUE;
int targetHeight = h;
for (Camera.Size size : sizes) {
double ratio = (double) size.width / size.height;
Log.d("Test", "Ration: " + Math.abs(ratio - targetRatio));
if (Math.abs(ratio - targetRatio) > ASPECT_TOLERANCE) {
continue;
}
if (Math.abs(size.height - targetHeight) < minDiff) {
optimalSize = size;
minDiff = Math.abs(size.height - targetHeight);
}
}
if (optimalSize == null) {
minDiff = Double.MAX_VALUE;
for (Camera.Size size : sizes) {
if (Math.abs(size.height - targetHeight) < minDiff) {
Log.d("Test", "MATCFH!");
optimalSize = size;
minDiff = Math.abs(size.height - targetHeight);
}
}
}
return optimalSize;
}
private Camera.Size GetOptimizePreviewSize(列表大小,整数w,整数h){
最终双纵横比公差=1;
双目标率=(双)w/h;
如果(大小==null){
返回null;
}
照相机。大小优化大小=空;
double minDiff=double.MAX_值;
int targetHeight=h;
用于(相机尺寸:尺寸){
双倍比率=(双倍)size.width/size.height;
对数d(“测试”,“定量:”+数学绝对值(比率-目标比率));
if(数学绝对值(比率-目标比率)>纵横比公差){
继续;
}
if(数学绝对值(尺寸高度-目标光)
我已经为此挣扎了一天,但找不到最佳解决方案。如有任何建议,将不胜感激 没错,更改相机预览大小可能不会保留纵横比。要保持预览显示的美观,应相应调整预览曲面视图的大小 因此,没有办法保持surfaceView在全屏模式下保持纵横比??那本机摄像头应用程序呢,它可以在全屏幕上以适当的纵横比工作??它是否使用了一些基于距离等的计算?系统摄像头应用程序为4x3分辨率留有黑色边距,但它经过精心设计,在16x9(也称宽)和4x3格式下都很好看。