一种基于移动设备的界面处理方法和装置的制造方法_2

文档序号:9865015阅读:来源:国知局
[0066]若以实物形态标识,以串联为例,则如图3A-图3B所示,在绘制电路控件300时,分别依据电源、开关、灯泡的实物图标识绘制电源图标301、处于打开状态的开关控件302和处于熄灭状态的灯泡图标303。
[0067]以Android系统为例,系统对UI界面进行显示的过程,实际上是从最外层的ViewGroup开始,针对每个View进行遍历测量(measure)、布局(layout)、绘制(draw)的过程。
[0068]其中,测量(measure)主要用来决定控件View的大小,整个View树计算实际的大小,即设置实际的高(对应属性:mMeasuredHe ight)和宽(对应属性:mMeasureffidth),每个View的控件的实际宽高都是由父视图和本身视图决定的。
[0069]具体的调用链如下:
[0070]ViewRoot根对象地属性mView(其类型一般为ViewGroup类型)调用measure ()方法去计算View树的大小,回调View/ViewGroup对象的onMeasure()方法,该方法实现的功能如下:
[0071 ] 1、设置本\^6¥视图的最终大小,该功能的实现通过调用86七1638虹6(10;[1116118;[011()方法去设置实际的高(对应属性:mMeasuredHeight)和宽(对应属性:mMeasureffidth);
[0072]2、如果该View对象是个ViewGroup类型,需要重写该onMeasureO方法,对其子视图进行遍历的measure ()过程。
[0073]2.1对每个子视图的measure ()过程,是通过调用父类ViewGroup.java类里的measureChi IdWithMargins O方法去实现,由于measureChi IdWithMargins O 方法只是一个过渡层更简单的做法是直接调用View对象的measureO方法,因此,该方法内部只是简单地调用了 View对象的measureO方法。
[0074]布局(layout)主要确定控件View的位置,将整个根据子视图的大小以及布局参数将View树放到合适的位置上。
[0075]具体的调用链如下:
[0076]host.layout ()开始View树的布局,继而回调给View/ViewGroup类中的layout ()方法。具体流程如下:
[0077]1、layout方法会设置该View视图位于父视图的坐标轴,即mLeft,mTop,mLeft,mBottom(调用setFrameO函数去实现);
[0078]接下来回调onLayout O方法(如果该View是ViewGroup对象,需要实现该方法,对每个子视图进行布局)。
[0079]2、如果该View是个ViewGroup类型,需要遍历每个子视图childView,调用该子视图的layout ()方法去设置它的坐标值。[0080 ] 绘制(draw)主要决定控件V i ew的显示。
[0081 ] 由ViewRoot对象的performTraversals()方法调用draw()方法发起绘制该View树,值得注意的是每次发起绘图时,并不会重新绘制每个View树的视图,而只会重新绘制那些“需要重绘”的视图,View类内部变量包含了一个标志位DRAWN,当该视图需要重绘时,就会为该View添加该标志位。
[0082]调用流程如下:
[0083]mView.draw O开始绘制,draw O方法实现的功能如下:
[0084]1、绘制该View的背景;
[0085]2、为显示渐变框做一些准备操作;
[0086]3、调用onDraw ()方法绘制视图本身(每个V i ew都需要重载该方法,Vi ewGroup不需要实现该方法);
[0087]4、调用dispatchDraw()方法绘制子视图(如果该View类型不为ViewGroup,即不包含子视图,不需要重载该方法);
[_8] 需要说明的是,ViewGroup类已经为重写了 dispatchDrawO的功能实现,应用程序一般不需要重写该方法,但可以重载父类函数实现具体的功能。
[0089]4.1dispatchDrawO方法内部会遍历每个子视图,调用drawChildO去重新回调每个子视图的drawO方法(注意,这个地方“需要重绘”的视图才会调用drawO方法)。
[°09°] 需要说明的是,ViewGroup类已经重写了dispatchDraw()的功能实现,应用程序一般不需要重写该方法,但可以重载父类函数实现具体的功能。
[0091]5、绘制滚动条。
[0092]若以实物形态标识电路控件中的元件,检测移动设备的剩余电量。
[0093]例如,在Android系统中,可以通过intent广播去实现,监听act1n_battery_changed获知剩余电量。
[0094]进而,按照该剩余电量在一界面中绘制一电路控件的电源图标。
[0095]例如,如图3A所示,若检测到移动设备的剩余电量为35 %,则可以在电源图标301中绘制电量剩余4格(满电量时为1格)。
[0096]由于闪光灯用于照片时的耗电大概在150ma左右,耗电量很大,而移动设备的电源的电量一般不是很大,因此,通过剩余电量绘制电源图标,可以提醒用户合理分配电量。
[0097]步骤102,在所述开关控件处检测到第一点击事件时,将所述开关控件从打开状态绘制为关闭状态;
[0098]在本发明实施例中,可以检测在移动设备屏幕上发生的触摸事件,若该事件为点击事件,则可以判断该点击事件是否处于电路控件的开关控件的位置上。
[0099]如果是,则可以认为用户需要关闭开关控件,则可以将开关控件从打开状态绘制为关闭状态。
[0100]例如,如图2A和图2B所示,若在处于打开状态的开关控件202上检测到第一点击事件,则可以将处于打开状态的开关控件202绘制为处于关闭状态的开关控件202 ’。
[0101]步骤103,基于针对所述开关控件的第一点击事件调用预设的第一接口,启动移动设备中的闪光灯;
[0102]在初始时,由于开关控件处于打开状态,按照电路规则,电路控件中的电路并非通路,可以熄灭灯泡图标。
[0103]若开关控件切换为关闭状态,按照电路规则,电路控件中的电路属于通路,可以点壳灯泡图标。
[0104]相对应地,可以响应基于针对开关控件的第一点击事件,调用预设的第一接口,启动移动设备中的闪光灯。
[0105]例如,在Android系统中,可以建立了一个CloudLed类,将Camera再做一次封装,只处理闪光灯相关的部份。
[0106]具体而言,可以透过Camera.0pen开启摄像头,开启摄像头后取得Camera.Parameters 设定参数。
[0107]若启动闪光灯,则可以将其设为FLASH_M0DE_TR0CH。
[0108]步骤104,当所述第一接口调用成功时,将所述灯泡图标从熄灭状态绘制为点亮状
??τ O
[0109]若检测到第一接口调用成功,则表示闪光灯启动成功,则可以将闪光灯对应的灯泡图标从熄灭状态绘制为点亮状态,否则,保持灯泡图标为熄灭状态,生成启动失败的提示
?目息O
[0110]例如,如图2Α和图2Β所示,若闪光灯启动成功,则可以将处于熄灭状态的灯泡图标203绘制为处于点亮状态的灯泡图标203 ’。
[0111]本发明实施例在界面绘制电路控件,通过第一点击事件将所述开关控件从打开状态绘制为关闭状态,从而调用第一接口,启动移动设备中的闪光灯,当第一接口调用成功时,将灯泡图标从熄灭状态绘制为点亮状态,通过电路直观地控制闪光灯,及实时反映其真实状态,减少了操作时出现的错误,减少显示错误,大大提高了操作的简便性。
[0112]参照图4,示出了本发明的一种基于移动设备的界面处理方法实施例2的步骤流程图,具体可以包括如下步骤:
[0113]步骤401,在移动设备的一界面中绘制一电路控件;
[0114]在本发明实施例中,电路控件包括一电源图标、一处于打开状态的开关控件、一处于熄灭状态的灯泡图标、一滑动变阻控件,该滑动变阻控件上具有滑片子控件。
[0115]其中,电源图标可以用于标识移动设备的电源,灯泡图标可以用于标识移动设备的闪光灯。
[0116]这些元件按照电路规则进行串联或者并联,并不出现短路、断路等情况,保证灯泡图标可以点亮即可,本发明实施例对此不加以限制。
[0117]若以电路图标识,以串联为例,则如图2Α-图2C所示,在绘制电路控件200时,分别依据电源、开关、灯泡、滑动变阻器(包括滑片)的电路图标识绘制电源图标201、处于打开状态的开关控件202、处于熄灭状态的灯泡图标203、滑动
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1