航海桌面皮肤制作.docx
《航海桌面皮肤制作.docx》由会员分享,可在线阅读,更多相关《航海桌面皮肤制作.docx(9页珍藏版)》请在冰豆网上搜索。
![航海桌面皮肤制作.docx](https://file1.bdocx.com/fileroot1/2022-11/16/9cf8154a-c429-4e4a-832e-41c984211ae0/9cf8154a-c429-4e4a-832e-41c984211ae01.gif)
航海桌面皮肤制作
航海主题制作
一、简介
航海桌面主题是一套灵活可自定义程度很高的系统。
用户可以通过主题配置文件修改桌面内容,布局和插入动画,互动内容,制作个性化的桌面。
二、主题配置文件构成
主题配置文件是一个zip文件包,可以通过任何zip文件生成工具打包制作。
然后修改扩展名为“.v”。
将配置文件上传到手机以下任一位置就可以被桌面设置程序里的主题设置识别出来。
c:
\System\Apps\HDesktop_0×2001E8B2\theme_pkg\
c:
\Hanghai\
e:
\Hanghai\
c:
\vApps\
e:
\vApps\
一个主题配置文件必须含有以下文件
∙meta.xml
∙theme.xml
∙prev.jpg
A、meta.xml是描述主题信息,里面包含版号和主题名称。
例:
0.0.7经典风格
B、theme.xml是主题定义,具体内容后面介绍
C、prev.jpg是主题预览图,在设置的时候显示。
预览图可以适配不同分辨率。
比如命名成prev_320_240.jpg,就是在320×240分辨率下使用。
可以有多个预览图存在。
三、定义主题
基本内容
A.在theme.xml里可以定义主题。
a.根节点称为theme_pack,含有多个theme标签。
桌面运行的时候会根据theme里的res属性选择适合当前屏幕大小的主题。
下面是同时定义了240×320屏幕和其横屏情况下320×240的主题。
例:
……
B.theme里有skin,wallpaper,color,flag,statuspane属性。
skin属性指定了当前皮肤图片。
wallpaper指定了默认壁纸,如果用户没设置过壁纸就采用这个壁纸。
color指定了壁纸采用的文字颜色,可以设置获得焦点后和未获得焦点的文字颜色,这会强制覆盖系统当前的颜色。
flag属性里目前只有一个值nosep,隐藏每行内容之间的分割线。
statuspane属性是用来选择symbian系统状态栏。
可以是idle,flat,usual,empty。
默认是empty。
就是不显示系统状态栏。
C.theme里包含各种plugin。
plugin里最重要的属性是com,它指定了桌面将创建哪个组件。
下面是可用的组件名称
1.hd_placeholder
2.hd_status
3.hd_digitalclock
4.hd_analogclock
5.hd_clock
6.hd_weather
7.hd_large_weather_icon
8.hd_news
9.hd_sns
10.hd_music
11.hd_luna
12.hd_search
13.hd_todo
14.hd_calendar
15.hd_dock
16.hd_shortcut
plugin里除了com属性还能放pos,size,bg,flag属性,在使用某些com值的情况下还有特殊的属性可以支持。
pos属性是定义了plugin的位置,这在插件作为绝对坐标对齐的时候生效,如果插件不是绝对坐标对齐的,这个属性不生效。
size指定了插件的大小,在任何时候生效。
可以通过*号表示服从默认大小设置。
例:
size=”*,32″表示宽度默认,高度32。
bg属性指定了plugin的背景内容,里面是一条绘制语句。
在后面有专门介绍。
flag是控制符。
每种plugin都有默认的flag。
一旦写了flag,就会覆盖默认值。
例:
hd_clock的默认flag是可获得焦点,可以通过修改flag让他不能获得焦点。
这样用户操作键盘的时候就无法对焦到这个plugin上。
flag是有以下值组成的字符串:
nav、abs、bottom。
nav表示可以获得焦点;abs表示绝对坐标对齐;bottom表示从底部开始排版;这些值组成用空格分割,达到最终效果。
例:
flag=”navabs”表示可获得焦点的绝对坐标对齐flag=”navbottom”表示可获得焦点的底部对齐
flag=“”,那么表示不可获得焦点,向上排版对其。
背景
背景是由各种绘图语句构成的,用来指定plugin背景内容。
最简单的方式是在plugin的bg属性里指定一个背景。
例:
比如0,135,134,212;65,186,71,204′flag=”abs”/>
这里指定了一个box背景,从主题的skin文件里读取一个矩形绘制,以box方式绘制到plugin的背景上。
也可以多个背景叠加。
另例:
2,104,34,133;7,111,28,128′/>
2,104,34,133;7,111,28,128′/>
……
采用background标签的方式,给plugin指定了2个背景内容。
注意,这里有个type属性。
type=”focus”表示这个背景在获得焦点时候生效。
一个plugin可以拥有两个背景,一个在无焦点时候生效,一个在获得焦点时候生效。
唯一的列外是hd_shortcut。
它的焦点背景只给图标用。
而不是整个plugin。
背景绘图语句有以下几种:
box:
outer_rect;inner_rect
row:
outer_rect;inner_rect
row_top:
outer_rect;inner_rect
row_bottom:
outer_rect;inner_rect
col:
outer_rect;inner_recct
col_left:
outer_rect;inner_rect
col_right:
outer_rect;inner_rect
_fill:
rect
:
rect
img:
<(x,y)>image_path
box是九宫格绘制方法。
根据outer_rect和inner_rect划定的两个矩形确立一个九宫格。
缩放到plugin的背景区域上。
九宫格的4个角不会被缩放。
剩下5个格子,左右两侧的会上下拉升,上下两条会左右拉升。
中间的区域是向四个角拉升。
这种方式适合大多数需要指定圆角背景的情况。
而且原始图片可以不是很大。
row,col是类似与九宫格的方式,不过他们值确定3个格子。
两头不缩放,中间缩放。
row是横向的缩放,col是纵向的缩放。
他们可以指定各种功能对齐方法。
比如top,bottom,left,right,当背景图片的大小不大于背景区域时候,会用这些方法对齐。
_fill就是填充,将皮肤中的一个区域拉升填充到背景。
空表示直接绘制一个皮肤里的内容。
不做任何拉升操作。
img指定了一个外部图片做背景。
里面写的是图片文件的名称。
在名称前面可以加一个园括号,加入偏移量。
这样能指定他在plugin里的那个位置显示。
通过背景和hd_placeholder组合可以绘制很复杂的背景
例:
下面这段代码定义了htc风格的大时钟
0,135,134,212;65,186,71,204′flag=”abs”/>
146,125,225,211′flag=”abs”/>
146,125,225,211′flag=”abs”/>
\\System\\Apps\\HDesktop_0×2001E8B2\\theme_pkg\\digital.png”>
外部文件寻址
前面用到了各种图片,theme里的skin、wallpaper,背景里的img。
他们都遵循同样的外部文件寻址。
外部文件寻址有以下几种情况
1.只有文件名,无路径
2.有完整的文件名和路径
3.url
只有文件名的情况,是在主题配置文件里寻找。
主题配置文件是个zip包,可以包含多个文件。
相当于一个目录。
可以将各种图片都打包到主题配置文件里。
有完整文件名和路径的时候直接按完整文件名与路径寻找。
url是种特殊的情况。
目前不支持从网络下载文件。
只支持file:
//和jar:
//。
file:
//实际上就是把完整路径写成url。
用途不大。
jar:
//比较复杂,只是航海家内部使用。
特殊的plugin定义
有些特殊的plugin需要很复杂的定义才能完整工作。
hd_status
这是航海家风格的状态栏,里面可以定义各种组件,以及他们的对其方式