当前位置:
首页 >
camera module controll bar 隐藏显示控制
发布时间:2023/12/20
44
豆豆
生活随笔
收集整理的这篇文章主要介绍了
camera module controll bar 隐藏显示控制
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
1. config.xml
配置 各种 timeout 时间
<integer name="multitoggleitems_timeout">3000</integer><integer name="controll_timeout">3000</integer>
2. XXXModule
public class XXXModuleimplements CameraModule, PhotoController,CaptureController,xxx{private static final int LAYOUT_HIDE = 100 ;private static final int DISAPPEAR_TIME = 3000 ;public void onResumeAfterSuper() {mActivity.onModuleSelected(ModuleSwitcher.CAPTURE_MODULE_INDEX);}Handler {switch (msg.what) { hideviews();}}public void hideLayout(){mHandler.removeMessages(HIDE_LAYOUT);mHandler.sendEmptyMessage(HIDE_LAYOUT);}public void hideLayout(boolean isTouch){if (isTouch) {mHandler.removeMessages(HIDE_LAYOUT);} else {mHandler.sendEmptyMessageDelayed(HIDE_LAYOUT, DISAPPEAR_TIME);}}public CaptureUI getUI(){return mUI;}}3. CameraActivity
CameraActivity {private long time= 1000 * 60 * 2;private ModuleSwitcherManager mModuleSwitcherManager;oncreate(){//module controllmModuleSwitcherManager = new ModuleSwitcherManager();mModuleSwitcherManager.create(this ,mCameraRootFrame);mModuleSwitcherManager.setOnModuleChangeListener(this);mCurrentModule = mModuleSwitcherManager.getCurrentCameraModule();}@Overridepublic void onModuleSelected(int moduleIndex) {checkIfNeedRestartCountDown(null);}//auto finishprivate Runnable finishActivityRunnable = new Runnable() {@Overridepublic void run() {finish();}};@Overridepublic boolean dispatchTouchEvent(MotionEvent ev) {.....checkIfNeedRestartCountDown(ev);return result;}public void checkIfNeedRestartCountDown(MotionEvent ev){boolean isRecording = false;mMainHandler.removeCallbacks(mFinishActivityRunnable);if (ev == null || ev.getActionMasked() == MotionEvent.ACTION_DOWN) {if (mModuleSwitcherManager.getCurrentCameraModule() instanceof PhotoModule) {((PhotoModule) mModuleSwitcherManager.getCurrentCameraModule()).hideLayout(true);}if (mModuleSwitcherManager.getCurrentCameraModule() instanceof CaptureModule) {((CaptureModule) mModuleSwitcherManager.getCurrentCameraModule()).hideLayout(true);}}if (ev == null || ev.getAction() == MotionEvent.ACTION_UP) {if (mModuleSwitcherManager.getCurrentCameraModule() instanceof PhotoModule) {((PhotoModule) mModuleSwitcherManager.getCurrentCameraModule()).hideLayout(false);((PhotoModule) mModuleSwitcherManager.getCurrentCameraModule()).getPhotoUI().setTouchEvent(true);}if (mModuleSwitcherManager.isVideoModule(mModuleSwitcherManager.getCurrentModuleIndex())) {isRecording = true;}if(!isRecording)mMainHandler.postDelayed(finishActivityRunnable, time);if (mModuleSwitcherManager.getCurrentCameraModule() instanceof CaptureModule) {((CaptureModule) mModuleSwitcherManager.getCurrentCameraModule()).hideLayout(false);((CaptureModule) mModuleSwitcherManager.getCurrentCameraModule()).getUI().setTouchEvent(true);}}}
总结
以上是生活随笔为你收集整理的camera module controll bar 隐藏显示控制的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: CE 开启 DBVM
- 下一篇: 看了 72 位图灵奖得主成就,才发现我对