【发布时间】:2013-12-06 09:44:18
【问题描述】:
我正在为 Android 构建一个自定义相机应用程序。 Camera.Parameters API 包含类似 setPreviewSize 或 setPictureSize 的方法,它们运行良好。
但我正在尝试使用setJpegQuality(int) 参数:
Camera cam = getCameraInstance();
if(cam == null){
setResult(INSTANCE_ERROR);
finish();
}
params = cam.getParameters();
params.setJpegQuality(jpegQuality);
cam.setParameters(params);
我正在 3 种不同的设备上测试我的应用程序:HTC Desire Z、Galaxy S2 和 Galaxy S4。
setJpegQuality 在 HTC (Android 2.2.1) 和 Galaxy S2 (4.1.2) 上运行,但在 Galaxy S4 设备 (4.2.2) 上运行失败。
所以我的问题是:此功能是否已弃用?有没有其他方法可以设置图片质量?在开发人员文档中,它似乎不是一个已弃用的功能,所以我有点困惑......
我也试过了
params.set("jpeg-quality", jpegQuality);
但它是一样的:(
感谢您的回答。
【问题讨论】:
-
我是世界上第一个遇到此功能问题的人吗?
-
我可能是第二个,但找不到解决方案。你找到一个 macTar 了吗?
-
我在 S3 上看到了同样的问题。 setJpegQuality(80) 似乎在我的 Nexus 4 (4.4.4) 和 HTC Sensation (4.0.3) 上运行良好,但在 S3 上照片似乎仍然是全质量,导致文件大小增加 2 倍。
-
能不能得到getJpegQuality()的值,怎么知道方法不行?请提供更多信息(logcat、调试转储值等)
-
该功能似乎没有被弃用,但您可能面临制造商实施问题。如果您还没有尝试过,请尝试在设置质量之前停止预览,然后重新启动它。过去我遇到过相机“驱动程序”仅在启动时读取参数的问题。
标签: android camera android-camera android-version