我正在尝试开发自动聚焦在相机框架中间的大对象的代码.这是我的代码:
Log.i (TAG, "Picking supported size " + selected.width + "x" + selected.height); parameters.setPictureSize (selected.width, selected.height); try { parameters.setFocusAreas (Arrays.asList ( new Camera.Area ( new Rect(selected.width/3, selected.height/3, (selected.width*2)/3, (selected.height*2)/3), 1) )); } catch (Exception e) { Log.w (TAG, "Set focus area failed", e); } catch (NoClassDefFoundError e) { Log.w (TAG, "Set focus area failed", e); } camera.setParameters (parameters);
三星Galaxy S2与CM9的结果是:
I/ImageCaptureActivity(28885): Picking supported size 2048x1232 E/ISecCameraHardware(1874): android::status_t android::ISecCameraHardware::checkArea(ssize_t, ssize_t, ssize_t, ssize_t, ssize_t): Camera area right coordinate is invalid 1365 E/ISecCameraHardware(1874): android::status_t android::ISecCameraHardware::setFocusAreas(const android::CameraParameters&): FocusArea parsing failed W/dalvikvm(28885): threadid=1: thread exiting with uncaught exception (group=0x40a641f8) E/AndroidRuntime(28885): FATAL EXCEPTION: main E/AndroidRuntime(28885): java.lang.RuntimeException: setParameters failed E/AndroidRuntime(28885): at android.hardware.Camera.native_setParameters(Native Method) E/AndroidRuntime(28885): at android.hardware.Camera.setParameters(Camera.java:1423) E/AndroidRuntime(28885): at net.meridiandigital.autophoto.ImageCaptureActivity$1.run(ImageCaptureActivity.java:67)
知道为什么这段代码不起作用?产生的右手坐标(1365)完全在图像宽度(2048)内,那么为什么系统会反对呢?