当前位置 : 主页 > 手机开发 > android >

相机在Android中,如何获得最佳尺寸,预览尺寸,图片尺寸,视图尺寸,图像扭曲

来源:互联网 收集:自由互联 发布时间:2021-06-11
混合来自OpenGL和 Android相机的视图时图像失真,以便在使用takepicture方法时获取两者的图像.我查了一下,发现相机图片设置为640X480,openGL视图和相机预览都设置为1280×720. 所以我将相机图片
混合来自OpenGL和 Android相机的视图时图像失真,以便在使用takepicture方法时获取两者的图像.我查了一下,发现相机图片设置为640X480,openGL视图和相机预览都设置为1280×720.

所以我将相机图片大小设置为1280×720,结果非常完美.但是我无法在代码中设置大小,因为每个Android设备都会有所不同,并且每个设备都必须从支持的大小列表中选择预览大小和图片大小的设置.

考虑到这里有三个变量,活动布局的屏幕尺寸,相机预览尺寸和图片尺寸,最好的方法是什么.

是最好使用match_parent或fitXY作为FrameLayout大小,只能使用两个变量,预览大小和图片大小?

请注意预览大小和图片大小中的几个宽度和高度组合是相同的.例如1280 x 720同时存在于预览和图片中,是否总是会出现两种尺寸的匹配?

List<Size> previewSizes = mCamera.getParameters().getSupportedPreviewSizes();

 List<Size> imageSizes = mCamera.getParameters().getSupportedPictureSizes();

 // layout in the activity that the cameraView will placed in
 int layoutWidth = frameLayout.getWidth();
 int layoutHeight = frameLayout.getHeight();

例如,在测量后的一个Android平板电脑中,这些是使用的3个变量的结果

作为测量结果的活动中布局viewGroup的大小

1280 x 736

支持的图片尺寸

320 x 240
 640 x 480
 1024 x 768
 1280 x 720 << best size in my example to use
 1280 x 768
 1280 x 920
 1600 x 1200
 2048 x 1536
 2560 x 1440
 2560 x 1536
 2560 x 1920  << native resolution of hardware camera

支持的预览尺寸

176 x 144
 320 x 240
 352 x 288
 480 x 320
 480 x 368
 640 x 480
 800 x 480
 800 x 600
 864 x 480
 864 x 576
 960 x 540
 1280 x 720 << best size in my example to use
 1280 x 768
 1280 x 960
大多数情况下,但并非总是如此,图片宽高比和预览宽高比之间存在对应关系.您可以放心,至少其中一些是经典的4:3比率(例如640×480).对16:9的支持也很普遍.

屏幕可能具有不同的宽高比.要正确填充相机图像,可以广泛接受添加黑色边距(在YouTube中使用相同的方法).或者,您可以裁剪相机图像以填满整个屏幕.

请注意,屏幕尺寸(在各种设备的技术规格中报告)并不总是实际可用于图像显示.例如,系统菜单和标题栏等可以占用屏幕空间的份额.某些设备上可以使用沉浸式模式,其行为取决于系统版本.您可能会期待Android的未来发展,例如:第二屏支持,将使游戏更加有趣.

那么,你的具体问题的答案:

是最好使用match_parent或fitXY作为FrameLayout大小,只能使用两个变量,预览大小和图片大小? – 不.

两种尺寸都会有匹配吗? – 是的,但也许这个尺寸不是最佳的.

即使您的相机支持不同的“宽”图片尺寸,1280×720预览和2560×1440图片也可能是最佳匹配,两者都精确地为16:9.通常,小尺寸的图片质量并不比相同尺寸的预览好,因此如果1280×720是您真正需要的,您可以选择保存预览框.

如果您可以放弃takePicture(),您的应用将会更加敏感.

网友评论