Camera: Focus 影响因素与状态管理及下发(二)

        Auto-Focus(AF)  Tag下发主要是研究点击UI界面,选定特定的聚焦区域,如何从应用层下发关键Tag驱使底层对Focus State进行改变,主要是针对ACTIVE的变化状态的研究。

1.点击手机屏幕触发聚焦效果

        结合之前俩篇文章,点击屏幕触发的是onSingleTapUp事件,而且肯定也会涉及到request的下发,但是与前篇文章不同之处在于下发的Tag不仅仅是AF Mode、AF Regions、AF Trigger了。

@Override
    public boolean onSingleTapUp(float x, float y) {
        if (mNeedShowFocusUi) {
            mFocusViewController.showActiveFocusAt((int) x, (int) y);
        }

        mModeHandler.post(new Runnable() {
            @Override
            public void run() {
                //API2 face detection need to config face detect mode
                if (mSettingChangeRequester != null) {
                    //此时下发的Auto-Focus是还没有更新的状态
                    mSettingChangeRequester.sendSettingChangeRequest();
                }

                //更新下发的AF Region Tag对应的value为lens需要聚焦的区域
                mFocusListener.updateFocusArea(mFocusArea, mMeteringArea);

                //更新下发的AF Mode Tag对应的value为AF_MODE_AUTO
                mFocusListener.updateFocusMode("auto");

                //这边对各种其他的TAG进行处理以及设置
                mFocusListener.autoFocus();
            }
        });
        LogHelper.d(mTag, "[onSingleTapUp]-");
        return false;
    }
//AF Regions的更新
@Override
    public void updateFocusArea(List<Camera.Area> focusArea, List<Camera.Area> meteringArea) {
        if (focusArea != null) {
            mResetAFRoi = checkRectValue(focusArea, mAfRegion);
            mAFRegions = new MeteringRectangle[]{new MeteringRectangle(focusArea.get(0).rect,
                    CAMERA2_REGION_WEIGHT)};
        }
        if (meterin
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值