Android相机 - 设置引起运行时异常的焦点区域

 夏冰语风 发布于 2023-01-20 14:33

我正在尝试开发自动聚焦在相机框架中间的大对象的代码.这是我的代码:

        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)内,那么为什么系统会反对呢?

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有