gpt4 book ai didi

android - Android API 7 (2.1 Eclair)下Camera的字符串参数

转载 作者:行者123 更新时间:2023-11-29 02:11:09 25 4
gpt4 key购买 nike

我正在开发一个使用Camera 预览、拍照和缩放功能的应用程序。

我正在尝试与 Android API 级别 7 (2.1 Eclair) 保持兼容,它未实现 Camera.Parameters.getMaxZoom()Camera.Parameters.setZoom() 等,所以我必须使用硬件返回的 String 参数。例如:

final String zoomSupportedString = parameters.get("zoom-supported"); // parameters is a Camera.Parameters 
final boolean zoomSupported = (zoomSupportedString != null ? Boolean.parseBoolean(zoomSupportedString) : false);

if (zoomSupported) {
// Computes the min an max zoom levels for taking a picture:
final int minTake = parameters.getInt("taking-picture-zoom-min");
final int maxTake = parameters.getInt("taking-picture-zoom-max");

// etc.
}

但并非所有设备都使用相同的参数,我在互联网上找不到任何有效的相机参数列表。

通过在 HTC 上检查 Camera.Parameters.flatten()(参见 doc)返回的值,我可以找到 "zoom-supported"“taking-picture-zoom-min”“taking-picture-zoom-max”“max-zoom”。令人惊讶的是,我没有找到 "min-zoom"

但是参数 "taking-picture-zoom-min" 在 Samsung Galaxy S 上不存在,例如,这导致 null 被返回并且 getInt() 抛出 NumberFormatException: 'null' cannot be parsed as an integer

知道我正在尝试与 Android-7 保持兼容,有没有比使用硬件返回的字符串值更好的处理缩放的方法?如果是这样,是否有可能在某个地方找到所有有效缩放参数的列表(甚至是供应商列表)?

最佳答案

我知道这是一个老话题,但对于那些正在搜索相机变焦的人来说...我遇到了同样的问题,现在我有 2 台工作方式不同的 Android 设备,两者都有一些共同点。

Camera.Parameters.setZoom(int value) 对它们都不起作用,所以我开始测试。一台设备具有“拍照-缩放-...;”但两个设备都有“缩放=...;”在 Camera.Parameters 中。在有“taking-picture-zoom-...;”的设备上,如果我使用 Camera.Parameters.set("zoom", int value) 它会崩溃,而在另一个会工作得很好。因此,我的解决方案是,在初始化相机时,我存储一个 bool 值,该 bool 值适用于 Camera.Parameters.get("taking-picture-zoom")!=null,否则为 false。从那一刻起,当设置缩放时,只需检查 bool 值并使用适当的缩放命令......就是这样,就像一个魅力!当然,您也可以让一个字符串保存适当的命令并在设置缩放时使用它。

关于android - Android API 7 (2.1 Eclair)下Camera的字符串参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7323265/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com