我Camera.Parameters#setPictureSize()
在我的应用程序中使用以获得更高分辨率的图像Camera#takePicture()
。我用Camera.Parameters#getSupportedPictureSizes
得到这个尺寸。
这很好用,除了在 Sony Xperia S 上:在 Logcat 中,我打电话后唯一得到Camera#takePicture()
的是一行字:
Error -2147483648
我终于发现这款手机的最佳图片尺寸是 4000x3000,这对我来说似乎太大了。我尝试通过手动将图片大小设置为 1920x1080,然后 takePicture 工作。
这是我获得最佳图片尺寸的代码:
private Camera.Size getBestPictureSize(int width, int height,
Camera.Parameters parameters) {
Camera.Size result = null;
for (Camera.Size size : parameters.getSupportedPictureSizes()) {
Log.d(this.getClass().getName(), "getBestPictureSize() - s(n) = "
+ size.width + "x" + size.height);
if (result == null) {
result = size;
} else {
if (size.width > result.width) {
result = size;
}
}
}
return result;
}
那么,您知道获得设备最佳图片尺寸并确保 takePicture 能够按预期工作的方法吗?