混合来自OpenGL和Android相机的视图时图像失真,以便在使用takepicture方法时获取两者的图像.我查了一下,发现相机图片设置为640X480,openGL视图和相机预览都设置为1280x720.
所以我将相机图片大小设置为1280x720,结果非常完美.但是我无法在代码中设置大小,因为每个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();
Run Code Online (Sandbox Code Playgroud)
例如,在测量后的一个Android平板电脑中,这些是使用的3个变量的结果
作为测量结果的活动中布局viewGroup的大小
1280 x 736
Run Code Online (Sandbox Code Playgroud)
支持的图片尺寸
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 …Run Code Online (Sandbox Code Playgroud) 我正在尝试实现Android相机预览,并希望以1:1的比例显示它(就像Instagram相机一样).
我知道如何处理预览帧大小为1:1,但预览中显示的相机输出被挤压.看起来实时预览仍然是4:3比例,但被挤压到1:1帧.有没有办法以1:1的比例进行实时预览?
我没有在这里粘贴任何代码,因为我尝试了很多方法,但都失败了,我无法发布任何内容......
谢谢