前言
在Camera类中,有一些以show开头的方法,将其统称为showXXX()。
showXXX()用于状态变换时候的图标隐藏,超时重现和提示信息。
这里对这些方法的使用进行总结。
showXXX()用于状态变换时候的图标隐藏,超时重现和提示信息。
这里对这些方法的使用进行总结。
具体分析
通常的做法是提供一个Public showXXX()方法,根据需要决定是否有private doShowXXX()方法。(比如:延时,多个public方法最终由一个private方法处理) 所以命名方式是Public showXXX()(少数showXXX是private), Private doShowXXX().private void doShowIndicator()
将该函数放在第一位是必要的。该函数设置的UI状态是正常的状态。其他的showXXX()在执行完成,需要界面恢复正常是,则直接或间接(showIndicator())执行该方法。
隐藏mInfoManager和RemainingManager,显示IndicatorManager, VIEW_STATE_NORMAL (isNormalViewState())时显示PickerManager
showIndicator()
设置延时执行doShowIndicator()。showInfo()
切换模式后,模式使用的引导。private doShowInfo()调用 InfoManager.showText(text)完成显示。 隐藏PickerManager和RemainingManager(可能是出于显示位置太接近容易重叠考虑),最后由InfoManager.showText()完成显示。最后调用ShowIndicator()。layout: onscreen_info.xml
基本在XXXActor()中使用。
dismissInfo()
看名字感觉和showInfo对应,执行相反操作。showInfo()通过ShowIndicator()关闭自身;这个方法清楚掉队列中的延时,直接调用doShowIndicator()。
private void doShowRemaining()
显示拍照剩余张数,录像剩余时长。定义了两种显示方式,一直显示showAways()和根据需要时显示showIfNeed()。showRemainingAways()采用前者,showRemaining()采用后者。一旦显示则隐藏IndicatorManager和InfoManager,isNormalViewState()时显示PickerManager。最后调用ShowIndicator()。
showToast()
用于显示接收到的系统broadcast的信息,VideoActor出错情况提示,VoiceManager的onUserGuideUpdated()音控拍照打开时的引导最后由OnScreenHint.makeText()/setText()完成显示。layout:onscreen_hint.xml
对比showInfo()和showToast()
- showInfo会隐藏部分ViewManager(避免重叠显示),而showToast只是简单的提示。
- showInfo在屏幕上部显示,而showToast是在屏幕下部显示。
showBorder()
显示preview的边框,用于录像中拍照时的拍照效果提示。