用户通过换肤界面选择皮肤,系统根据鼠标事件判断用户所选择的皮肤,加载相对路径下文件夹的CSS文件,重新设置控件属性,达到界面换肤。系统可单独更换界面背景或者控件,也可同时更换整个界面。具体实现如下:
1、响应mousedown事件
public void mouseDown(MouseEvent event)
{
// ModifyByID()根据ID修改XML文件中的text,并保存
EBDocument.getInstance().ModifyByID("ControlsSkin", control.getData().toString(), Configer.getInstance().ConfigPath);
Configer.getInstance().nowControlSkin = control.getData().toString();
// 响应MouseDown事件 更换皮肤事件
changecontrolSkin(event);
}
2、根据事件获取控件配色方案,这里data和配色方案相关联
private void changecontrolSkin(MouseEvent event)
{
control = (Control) event.widget;
if (control.getData() != null)
{
//根据控件的data
UISkin.getInstance().changecontrolSkin(control.getData().toString());
}
}
3、根据data加载相对应目录下的CSS文件
// 更改皮肤的控件颜色(即配色方案)
public void changecontrolSkin(String skinplat)
{
ebmlAnalsys.getInstance().LoadFile(String.format(EBDocument.getInstance().ReadByID(document, "controlSkin"), skinplat)); }毕业论文
http://www.751com.cn/皮肤系统流程图:
图6-3 皮肤系统流程
6.1.6换肤的记忆功能
针对此系统的换肤功能,为界面设置了一个换肤的记忆功能,系统自动保存最后一次换肤的结果包括背景和控件皮肤,并记录下来保存在XML中,在下次加载时读取XML然后加载CSS设置控件属性。
具体实现如下:原文请+QQ324,9114辣.文^论,文'网
1、 鼠标mousedown事件保存皮肤方案
// ModifyByID()根据ID修改XML文件中的text,并保存
EBDocument.getInstance().ModifyByID("ControlsSkin", control.getData().toString(), Configer.getInstance().ConfigPath);
Configer.getInstance().nowControlSkin = control.getData().toString();
<!-- 保存皮肤方案 -->
<EBUI ID="BackgroundSkin">default</EBUI>
<EBUI ID="ControlsSkin">default</EBUI>
2、 下次打开软件时,读取XML加载相对应的CSS,设置界面背景、控件属性
// 读取皮肤的配色方案以及皮肤的背景主题
上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] ... 下一页 >>
电子白板软件UI界面设计 第10页下载如图片无法显示或论文不完整,请联系qq752018766