【发布时间】:2014-03-07 06:20:17
【问题描述】:
在使用 takepicture 方法时混合来自 OpenGL 和 Android 相机的视图以获取两者的图像时图像失真。查了一下发现相机图片设置为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();
例如在一台 Android 平板电脑中测量后,这些是使用的 3 个变量的结果
作为测量结果的活动中布局视图组的大小
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
【问题讨论】:
-
这会产生“未绑定到有效相机”错误吗?
-
mCamera是如何构建的?
标签: android image camera android-camera