修改内容:
vendor\mediatek\proprietary\packages\apps\Camera\src\com\android\camera\CameraActivity.java
只需要更改此文件下面代码部分

public void onSingleTapUp(View view, int x, int y) {        //@tony add start:{        FocusManager focusManager = mCameraDeviceCtrl.getFocusManager();        if(focusManager != null){            Log.i(TAG,"focusManager.onSingleTapUp...");            focusManager.onSingleTapUp(x, y);                /* 去除下面一段,则只有假对焦效果,无变焦效果 */            mCameraDeviceCtrl.getCameraDevice().setParametersAsync(getParameters(),1);  //control zoom        }        //@tony add end:}        if (FeatureSwitcher.isApi2Enable(this)) {            return;        }    ...}

vendor\mediatek\proprietary\packages\apps\Camera\src\com\android\camera\FocusManager.java
需要更改此文件的4个代码部分
001

    private static final int STATE_FOCUSING_SNAP_ON_FINISH = 2;    private static final int STATE_SUCCESS = 3; // Focus finishes and succeeds.    private static final int STATE_FAIL = 4; // Focus finishes and fails.    //@tony add start:{    private static final int MSG_SHOW_FOCUS_END = 5;        private static final int MSG_SHOW_FOCUS_END_DELAY = 600;        private static final int RESET_TOUCH_FOCUS_DELAY = 3000;    //@tony add end:}    private boolean mInitialized;    private boolean mFocusAreaSupported;    private boolean mLockAeAwbNeeded;    private boolean mLockAeNeeded = true;

002

public void handleMessage(Message msg) {            Log.d(TAG, "[handleMessage] msg .what = " + msg.what);            switch (msg.what) {            case RESET_TOUCH_FOCUS:                cancelAutoFocus();                break;            case RESET_FACE_BEAUTY_TOUCH_POSITION:                resetFaceBeautyTouchPosition();                break;            case RESET_MULTIAF_FOCUS:                if (mMultiZoneAfView != null) {                    mMultiZoneAfView.clear();                }                break;            //@tony add start:{            case MSG_SHOW_FOCUS_END:                mFocusIndicatorRotateLayout.showSuccess(true);                mListener.playSound(MediaActionSound.FOCUS_COMPLETE);                 /* 去除下面一段,则只有假对焦效果,无变焦效果 */                mContext.getCameraDevice().setParametersAsync(mParameters, 0);  //control zoom                break;            //@tony add end:}            default:                break;            }        }  

003

 public void onSingleTapUp(int x, int y) {        Log.d(TAG, "onSingleTapUp x = " + x + " y = " + y);        // when devices support both continuous and infinity focus mode.        String focusMode = getCurrentFocusMode(mContext);        if (focusMode == null || Parameters.FOCUS_MODE_INFINITY.equals(focusMode)) {            Log.w(TAG, "[onSingleTapUp]focusMode:" + focusMode);            return;        }        // Check if metering area or focus area is supported.        //@tony del start:{        /* if (!mFocusAreaSupported) {            Log.i(TAG, "[onSingleTapUp] mFocusAreaSupported is false");            return;        } */        //@tony del end:}        if (!mInitialized || mState == STATE_FOCUSING_SNAP_ON_FINISH || mState == STATE_UNKNOWN) {            return;        }        ...    }

004

  public void onSingleTapUp(int x, int y) {    ...    // Set the focus area and metering area.        mListener.setFocusParameters();        //@tony modify start:{        //autoFocus();        Log.d(TAG, "ydw, add if-else flow.");        if (mFocusAreaSupported) {            autoFocus();        } else { // Just show the indicator in all other cases.            updateFocusUI();            // Reset the metering area in 3 seconds.            mHandler.removeMessages(RESET_TOUCH_FOCUS);            mHandler.sendEmptyMessageDelayed(RESET_TOUCH_FOCUS, RESET_TOUCH_FOCUS_DELAY);            mHandler.removeMessages(MSG_SHOW_FOCUS_END);            mHandler.sendEmptyMessageDelayed(MSG_SHOW_FOCUS_END, MSG_SHOW_FOCUS_END_DELAY);         }        //@tony modify end:}    }

更多相关文章

  1. fanfou(饭否) android客户端 代码学习3
  2. Android开发学习笔记:Android很有用的代码片段
  3. android 获得当前view在屏幕的坐标
  4. Android(安卓)备忘录
  5. Android实现拍照、录像、录音代码范例
  6. Android顶部导航
  7. Android属性动画源代码解析(超详细)
  8. android 完美的ListView实现【原创】
  9. android中置调用指定浏览器

随机推荐

  1. android中的单位
  2. 移动开发:fb的-app.xml文件
  3. android 调用图库中选择的图片
  4. 修改光标颜色
  5. Service与Android系统实现(1)-- 应用程序里
  6. Google Android操作系统内核编译图文教程
  7. android中activity的启动方式
  8. Android(安卓)控件系列: GridView 的简单
  9. Android—Http连接之GET/POST请求
  10. [android] 保存文件到手机内存