TA的每日心情 | 奋斗 2022-7-4 09:45 |
---|
签到天数: 28 天 [LV.4]偶尔看看III
版主
- 积分
- 5481
|
启程输入法采用XML格式来定义界面。状态栏上的显示效果全部依赖XML的定义。
下面以默认皮肤的状态栏定义来简单介绍一下如何配置状态栏样式。
- <SOUI
- name="wnd_status_bar"
- resizable="0"
- wndType="normal"
- translucent="1"
- toolwindow="1"
- >
- <user autoScale="true"/>
- <skin>
- <imglist name="bg_status_bar" src="img:png_status_bar"/>
- <imglist name="logo" src="img:logo_32" states="2"/>
- <imglist name="charmode" src="img:png_charmode" states="2"/>
- <imglist name="charmode_full" src="img:png_charmode_full" states="3"/>
- <imglist name="charmode_half" src="img:png_charmode_half" states="3"/>
- <imglist name="btn_extend" src="img:btn_extend" states="3"/>
- <imglist name="btn_shrink" src="img:btn_shrink" states="3"/>
- <imglist name="btn_makeword" src="img:btn_makeword" states="3"/>
- <imglist name="btn_query" src="img:btn_query" states="3"/>
- <imglist name="btn_record_enable" src="img:btn_record_enable" states="3"/>
- <imglist name="btn_record_disable" src="img:btn_record_disable" states="3"/>
- <imglist name="btn_sound_enable" src="img:btn_sound_enable" states="3"/>
- <imglist name="btn_sound_disable" src="img:btn_sound_disable" states="3"/>
- </skin>
- <root size="-1,-1">
- <!--default must have both status_shrink and status_extend status and all of buttons name -->
- <status_bg size="-1,-1" name="status_shrink" layout="hbox" skin="bg_status_bar" gravity="center" padding="@dim/extend_padding_left,@dim/extend_padding_top,@dim/extend_padding_right,@dim/extend_padding_bottom">
- <caption2 size="75,-2" weight="1" extend_left="32" name="txt_comp" cursor="sizeall" dotted="1"/>
- <flagView size="20,20" tip="拼音五笔切换" colorTheme="@color/theme" name="img_logo" extend_left="4" defaultFlag="logo" cursor="hand"/>
- <toggle2 size="-1,-1" skin1="charmode_half" extend_left="2" skin2="charmode_full" name="btn_charmode" tip="change mode"/>
- <imgbtn size="-1,-1" skin="btn_makeword" extend_left="2" name="btn_make_phrase"/>
- <toggle2 size="-1,-1" skin1="btn_record_enable" extend_left="2" skin2="btn_record_disable" name="btn_record"/>
- <toggle2 size="-1,-1" skin1="btn_sound_enable" extend_left="2" extend_right="5" skin2="btn_sound_disable" name="btn_sound"/>
- <window size="5,-2"/>
- </status_bg>
- <status_bg size="-1,-1" name="status_extend" layout="hbox" skin="bg_status_bar" gravity="center" padding="@dim/extend_padding_left,@dim/extend_padding_top,@dim/extend_padding_right,@dim/extend_padding_bottom">
- <caption2 size="75,-2" weight="1" extend_left="32" name="txt_comp" cursor="sizeall" dotted="1"/>
- <flagView size="20,20" tip="拼音五笔切换" colorTheme="@color/theme" name="img_logo" extend_left="4" defaultFlag="logo" cursor="hand"/>
- <toggle2 size="-1,-1" skin1="charmode_half" extend_left="2" skin2="charmode_full" name="btn_charmode" tip="change mode"/>
- <imgbtn size="-1,-1" skin="btn_makeword" extend_left="2" name="btn_make_phrase"/>
- <toggle2 size="-1,-1" skin1="btn_record_enable" extend_left="2" skin2="btn_record_disable" name="btn_record"/>
- <toggle2 size="-1,-1" skin1="btn_sound_enable" extend_left="2" extend_right="5" skin2="btn_sound_disable" name="btn_sound"/>
- <window size="5,-2"/>
- <!--invisible button, used for generate button id-->
- <imgbtn size="0,0" visible="0" name="btn_status_shrink"/>
- <imgbtn size="0,0" visible="0" name="btn_status_extend"/>
- <toggle2 size="0,0" visible="0" name="btn_english"/>
- <toggle2 size="0,0" visible="0" name="btn_filter_gbk"/>
- <imgbtn size="0,0" visible="0" name="btn_menu"/>
- <imgbtn size="0,0" visible="0" name="btn_help"/>
- <imgbtn size="0,0" visible="0" name="btn_query"/>
- <imgbtn size="0,0" visible="0" name="btn_config"/>
- </status_bg>
- </root>
- </SOUI>
复制代码 XML文件是一种结构化的文本文件,是由一个个节点(也称为元素)及节点的属性构成的。
上面的XML文件,SOUI是根结点,name="wnd_status_bar" 是根节点SOUI的一个属性。
根节点下有几个子节点:user, skin, root。
user节点只有一个属性:autoScale="true", 标识这个窗口是支持高分屏放大的。没有这个节点,则这个窗口默认不支持放大。
skin结点是这个窗口中需要使用到哪些图片。
imglist元素说明这个图片是由1到states个小图组成的一张图。
例如:<imglist name="charmode_full" src="img:png_charmode_full" states="3"/>
这个元素有3个属性:
name= charmode_full, 这个属性是被后面的imgbtn引用时使用的。
src=img:png_charmode_full,代表这个图片的文件是在uires.idx里的img元素如下:
<IMG>
<file name="png_charmode_full" path="image\charmode_full.png"/>
</IMG>
上面file的path属性就是这个图片最后的磁盘路径。
state=3, 这个属性说明这个图片包含3个子图(状态)
图片如下:
root元素是窗口的布局,包含两个status_bg元素,一个是完全状态,一个紧缩状态。注:默认皮肤两种状态显示效果是一样的。
status_bg下面有几种元素:caption2, flagview, toggle2, imgbtn, window等。不同的元素有不同的功能。
caption2是代表一个可以移动的区域,用来显示编码状态。
flagview是显示码表图标的地方。
toggle2是一些切换状态的开关按钮。
imgbtn是不需要切换状态的按钮。
window这里主要是用来做分割区用的,一般会配上visible="0"的属性,代表不显示。
最后面的一些元素,size="0,0"是一些不可见的按钮,它们都配置了name属性。如果需要这个按钮的功能,可以将这个按钮显示出来,通常会需要将它改成imgbtn,并配置一个对应的图片即可。
从上面的XML中,可以看出,代码还支持btn_status_shrink,btn_status_extend,btn_english,btn_filter_gbk,btn_menu,btn_help, btn_config,btn_query这几个按钮。
btn_status_shrink,btn_status_extend:这是两个状态栏状态切换的按钮。
btn_english:是单词补全输入的开关。
btn_filter_gbk: 是过滤GBK候选词的开关。
btn_menu: 是打开菜单栏的按钮。
btn_help: 是打开帮助。
btn_config: 是打开设置界面。
btn_query: 是编码反查等按钮。
如果皮肤中需要显示这些按钮,只需要配置好skin属性等就可以了。
|
|