SOUI官方论坛

 找回密码
 立即注册
查看: 1471|回复: 2

启程输入法状态栏格式说明

[复制链接]
  • TA的每日心情
    奋斗
    2022-7-4 09:45
  • 签到天数: 28 天

    [LV.4]偶尔看看III

    59

    主题

    588

    帖子

    5481

    积分

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    5481

    突出贡献优秀版主

    发表于 2019-12-11 15:52:24 | 显示全部楼层 |阅读模式
    启程输入法采用XML格式来定义界面。状态栏上的显示效果全部依赖XML的定义。
    下面以默认皮肤的状态栏定义来简单介绍一下如何配置状态栏样式。
    1. <SOUI
    2.   name="wnd_status_bar"
    3.   resizable="0"
    4.   wndType="normal"
    5.   translucent="1"
    6.   toolwindow="1"
    7. >
    8.   <user autoScale="true"/>
    9.   <skin>
    10.     <imglist name="bg_status_bar" src="img:png_status_bar"/>
    11.     <imglist name="logo"        src="img:logo_32" states="2"/>
    12.     <imglist name="charmode" src="img:png_charmode" states="2"/>
    13.     <imglist name="charmode_full" src="img:png_charmode_full" states="3"/>
    14.     <imglist name="charmode_half" src="img:png_charmode_half" states="3"/>
    15.     <imglist name="btn_extend" src="img:btn_extend" states="3"/>
    16.     <imglist name="btn_shrink" src="img:btn_shrink" states="3"/>
    17.     <imglist name="btn_makeword" src="img:btn_makeword" states="3"/>
    18.     <imglist name="btn_query" src="img:btn_query" states="3"/>
    19.     <imglist name="btn_record_enable" src="img:btn_record_enable" states="3"/>
    20.     <imglist name="btn_record_disable" src="img:btn_record_disable" states="3"/>
    21.     <imglist name="btn_sound_enable" src="img:btn_sound_enable" states="3"/>
    22.     <imglist name="btn_sound_disable" src="img:btn_sound_disable" states="3"/>
    23.   </skin>
    24.   <root size="-1,-1">
    25.     <!--default must have both status_shrink and status_extend status and all of buttons name -->
    26.     <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">
    27.       <caption2 size="75,-2" weight="1" extend_left="32" name="txt_comp" cursor="sizeall" dotted="1"/>
    28.       <flagView size="20,20" tip="拼音五笔切换" colorTheme="@color/theme" name="img_logo" extend_left="4" defaultFlag="logo" cursor="hand"/>
    29.       <toggle2 size="-1,-1" skin1="charmode_half" extend_left="2" skin2="charmode_full" name="btn_charmode" tip="change mode"/>
    30.       <imgbtn size="-1,-1" skin="btn_makeword" extend_left="2" name="btn_make_phrase"/>
    31.       <toggle2 size="-1,-1" skin1="btn_record_enable" extend_left="2" skin2="btn_record_disable" name="btn_record"/>
    32.       <toggle2 size="-1,-1" skin1="btn_sound_enable" extend_left="2" extend_right="5" skin2="btn_sound_disable" name="btn_sound"/>
    33.       <window size="5,-2"/>
    34.     </status_bg>
    35.     <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">
    36.       <caption2 size="75,-2" weight="1" extend_left="32" name="txt_comp" cursor="sizeall" dotted="1"/>
    37.       <flagView size="20,20" tip="拼音五笔切换" colorTheme="@color/theme" name="img_logo" extend_left="4" defaultFlag="logo" cursor="hand"/>
    38.       <toggle2 size="-1,-1" skin1="charmode_half" extend_left="2" skin2="charmode_full" name="btn_charmode" tip="change mode"/>
    39.       <imgbtn size="-1,-1" skin="btn_makeword" extend_left="2" name="btn_make_phrase"/>
    40.       <toggle2 size="-1,-1" skin1="btn_record_enable" extend_left="2" skin2="btn_record_disable" name="btn_record"/>
    41.       <toggle2 size="-1,-1" skin1="btn_sound_enable" extend_left="2" extend_right="5" skin2="btn_sound_disable" name="btn_sound"/>
    42.       <window size="5,-2"/>
    43.       <!--invisible button, used for generate button id-->
    44.       <imgbtn size="0,0" visible="0" name="btn_status_shrink"/>
    45.       <imgbtn size="0,0" visible="0" name="btn_status_extend"/>
    46.       <toggle2 size="0,0" visible="0" name="btn_english"/>
    47.       <toggle2 size="0,0" visible="0" name="btn_filter_gbk"/>
    48.       <imgbtn size="0,0" visible="0" name="btn_menu"/>
    49.       <imgbtn size="0,0" visible="0" name="btn_help"/>
    50.       <imgbtn size="0,0" visible="0" name="btn_query"/>
    51.       <imgbtn size="0,0" visible="0" name="btn_config"/>
    52.     </status_bg>
    53.   </root>
    54. </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个子图(状态)
    图片如下:
    charmode_full.png

    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属性等就可以了。


  • TA的每日心情
    开心
    4 小时前
  • 签到天数: 941 天

    [LV.10]以坛为家III

    580

    主题

    1340

    帖子

    2万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    28758
    发表于 2019-12-11 16:19:46 | 显示全部楼层
    做自己输入法皮肤的有福了,明明白白

    该用户从未签到

    1

    主题

    14

    帖子

    91

    积分

    24:00金丹期

    Rank: 2

    积分
    91
    发表于 2019-12-11 16:45:33 | 显示全部楼层
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|手机版|小黑屋|SOUI官方论坛

    GMT+8, 2024-4-26 13:51

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表