4:3 平板电脑上的 Android 相机预览纵横比
Posted
技术标签:
【中文标题】4:3 平板电脑上的 Android 相机预览纵横比【英文标题】:Android camera preview aspect ratio on 4:3 tablets 【发布时间】:2015-02-06 02:20:44 【问题描述】:我有一个带有前置和后置摄像头的 4:3 屏幕平板电脑 (op3n dott)。
如果我使用getSupportedPreviewSizes()
获得预览尺寸,则会报告流动尺寸:
**Back camera:**
1024*576
720*480
640*480
640*360
352*288
320*240
176*144
**Front camera:**
1280*720
1024*576
640*480
176*144
当我为后置摄像头设置 1024*576 大小并且预览布局被调整为这个大小时,预览中显示的图片被拉伸。如果将预览版面调整为4:3纵横比,将图片拉伸到1024*768,图片看起来还可以。
前置摄像头和1280*720的预览尺寸,预览中的图片没有任何花招。
当我尝试两个相机的 640x480 预览尺寸时,图片看起来也很好。
所以结论是1024*576(16:9)预览尺寸的后置摄像头实际上是一张4:3的拉伸图片。
我有一个朋友的 hp touchPad 也有类似的问题。
我的问题是 我怎么知道预览的 16:9 纵横比图像何时真正是 4:3 拉伸图像?我可以使用 4:3 平板电脑的 640x480 预览尺寸来解决这个问题吗??
【问题讨论】:
拉伸与预览大小和图片大小无关。您的布局大小和预览大小不匹配 布局是根据预览大小调整大小的,所以这不是问题。 参考这个问题***.com/questions/19577299/… Camera.Parameters 参数 = mCamera.getParameters(); Camera.Size csize = params.getPreviewSize(); FrameLayout.LayoutParams lparams = (FrameLayout.LayoutParams)getLayoutParams(); lparams.width = csize.width; lparams.height = csize.height; 此调整表面大小可能有点太晚了。真正的测试是将表面硬编码为 1024x576 并选择此预览尺寸。 【参考方案1】:我发现您必须在 onMeasure() 中使用“measureSpec”约束来调整(预)视图的大小,以便它不会被拉伸或挤压而出现在屏幕上。如果可用视图空间具有不同的纵横比,您可能会在一侧或另一侧获得空白空间。
【讨论】:
以上是关于4:3 平板电脑上的 Android 相机预览纵横比的主要内容,如果未能解决你的问题,请参考以下文章