我正在开发一个使用Camera
预览,拍照和缩放功能的应用程序。Android API 7下的相机字符串参数(2.1 Eclair)
我试图保持与Android API级别7(2.1埃克莱尔),它没有实现兼容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.
}
但并不是所有的设备都使用相同的参数,我不能在互联网上找到任何有效的相机参数列表。
通过检查(见doc)对HTC通过Camera.Parameters.flatten()
返回的值,我能找到"zoom-supported"
,"taking-picture-zoom-min"
,"taking-picture-zoom-max"
和"max-zoom"
。令人惊讶的是,我发现没有"min-zoom"
。
但参数"taking-picture-zoom-min"
不会对三星Galaxy S存在,例如,这导致null
要返回并getInt()
抛出一个NumberFormatException: 'null' cannot be parsed as an integer
。
知道我试图保持与Android-7的兼容性,有没有比使用硬件返回的字符串值更好的方式来处理缩放?如果是这样,是否有可能找到一个所有有效缩放参数列表(甚至是供应商列表)?