14 12
发新话题
打印

[教程] 不用软件制作主题------S40主题代码详解

不用软件制作主题------S40主题代码详解

这篇文章可以教你如何使用代码制作与修改主题,主要修改已有主题。
首先。我们要知道我们制作一款主题最重要的部分是哪里。现在你可以在你的电脑上把主题的后缀名加上.rar用解压缩软件随便打开一个主题的NTH文件。
在这个文件里。几乎所有的文件都是图片和音乐文件。除了一个theme_descriptor.xml。这个就是主题文件最主要的地方了,因为手机在读入主题信息的时候。系统最先找到的就是这个文件。这是一个XML文档。它里面标记的信息告诉手机在什么时候用哪个图片或哪个音乐。然后手机记下这些之后才会从这个NTH文件里抽取图片和音乐。对照刚才从XML文档那里得到的信息进行设置。所以。这篇教程主要就是教大家如何编辑XML文档。

在XML文档里。每对< >符号再加上它们中间的内容算作一个元素。元素是组成XML的最小单位,元素和元素之间你可以适当的加一个或者几个空格,让你的XML文档看起来条理更清晰,也方便你制作完成后查找错误。但是,< 和 >之间一定不要乱加东西(当然,如果你是个内行对XML非常了解的话,那就没什么问题了)。。。。。
进入编辑过程。。我会一个元素一个元素的解释给你听,但是,你一定要有耐心。
首先在你的桌面上新建一个TXT文件。打开。在第一行输入:<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE theme PUBLIC "-//NOKIA//DTD THEME 2.0//EN" "theme.dtd">

这是第一个和第二个元素(看清楚了吗?这里有两对< >所以是两个元素)。如果你懒得动手输入的话。你可以把红色部分直接复制到你的文档里。整篇教程里也是一样.
这是每个XML文档的开头都要有的元素。也是最重要的。我们先来看看第一个元素都说了些什么:
xml version="1.0"    这是一个声明。表示这是一个XML文档。他遵循的是1.0版本的规范。
encoding="UTF-8"?   这个是说该文档使用的语言编码是UTF-8。默认的语言编码都是这个。如果你想用中文的就把它改成GB2312。不过,我不知道诺基亚是不是支持中文编码。没敢试。
第二个元素:整个第二个元素只是在完成一件事。那就是定义文件类型。它要做的就是把你编辑好的XML文档。和诺基亚定义的主题DTD文件进行对比。看你的文档是否符合它的定义规则。所以这前两个元素十分重要。千万不能错。
下面进入主体部分:
<theme name="主题名字" version="2.0">
第三个元素就是给你的主题取个名字。可以是数字也可以是英文。但不要用中文。接下来我们看下一个:
<colors
  display="main"
  header_font_color="0x99ff99"
  status_area_font_color="0x99ff99"
  softkey_font_color="0x99ff99"
  calendar_highlight_color="0x6666ff"
  idle_font_color="0x99ff99"
  active_idle_active_font_color="0x99ff99"
  active_idle_content_background_color="0xffffff"
  shortcut_bar_popup_font_color="0xffffff"
  shortcut_bar_popup_background_color="0x99ff99"
  menu_font_color="0x99ff99"
  menu_highlight_font_color="0xffcc33"
  grid_menu_font_color="0x99ff99"
  grid_menu_highlight_font_color="0xffffff"
  reorder_highlight_font_color="0xffcc33"
  grid_highlight_color="0xffffff"
  reorder_highlight_color="0xffcc33" />

这个元素就比较长了。它主要是定义各种界面的字体颜色:
header_font_color="0x99ff99"

这个是表头字体颜色,引号里面的部分是用十六进制表示的颜色代码。你可以自己换。不知道颜色代码的朋友可以去百度里搜索。输入颜色代码。会出现很多。这里就不细说了。
header_font_color="0x99ff99"
  状态区字体颜色
softkey_font_color="0x99ff99"
  软键字体颜色
calendar_highlight_color="0x6666ff"
日历高亮字体颜色
idle_font_color="0x99ff99"  待机字体颜色
active_idle_active_font_color="0x99ff99"

当前待机字体颜色
active_idle_content_background_color="0xffffff"

当前待机背景颜色  shortcut_bar_popup_font_color="0xffffff"
当前快捷栏弹出字体颜色  shortcut_bar_popup_background_color="0x99ff99"
当前快捷栏弹出背景颜色
  menu_font_color="0x99ff99"

列表菜单字体颜色
menu_highlight_font_color="0xffcc33"
  列表菜单高亮字体颜色
grid_menu_font_color="0x99ff99"
  网格菜单字体颜色
grid_menu_highlight_font_color="0xffffff"
  网格菜单高亮字体颜色
reorder_highlight_font_color="0xffcc33"
  调整菜单高亮字体颜色
grid_highlight_color="0xffffff"
  网格菜单高亮字体颜色
reorder_highlight_color="0xffcc33"
调整菜单高亮字体颜色
  到这里为止,以上是所有界面字体颜色的设置中文解释。经常用制作软件的人,应该对这些中文代表什么意思很熟悉了吧?呵呵。。。。PS:以上这些命令的前后顺序是可以调换的。不一定要按我的顺序来。我只是举个例子而已。

TOP

接下来。我们要做的就是编辑主菜单的图标了:
<menu_item
  item_id="applications"
list_view_icon="图片名称.png"
  grid_view_icon="图片名称.png"
  animating_grid="图片名称.png"
  app_specific_bg="图片名称.gif" />
<menu_item
  item_id="messages"
  list_view_icon="图片名称.png"
  grid_view_icon="图片名称.png"
  animating_grid="图片名称.png"
  app_specific_bg="图片名称.gif" />
这里要注意看了:
menu_item
     主菜单项目  item_id="applications"
      项目名称="百宝箱"
看懂了么?这是一个为百宝箱换图标的元素。这个元素从第一个<   开始,到第一个  >  结束。而下边紧跟的四条是百宝箱在各种状况下使用的图标
list_view_icon="图片名称.png"
列表形式的主菜单百宝箱使用的图标
grid_view_icon="图片名称.png"
网格形式的主菜单百宝箱使用的图标
animating_grid="图片名称.png"
百宝箱使用的动画网格
app_specific_bg="图片名称.gif"
标签背景视图(这个是软件上的说法。)
把上边图片名称的部分换上你要使用的百宝箱图标就OK 了。
到这里为止。后边再加上 />
。百宝箱换图标的元素结束。
然后是就是给短信换个新“叶子”了。。仔细看上面。换短信的和换百宝箱的是一模一样的。只不过是把项目名称换了一下而已
由applications(百宝箱)换成了messages(短信)。其他的图标更换方法也是一样的。只不过是换个名字而已。下面我把各个选项的英文名字说给大家听:
callregister(通讯记录)
contacts(通讯录)
gallery(资料)
media(影音天地)
organizer(管理器)(也叫事务,反正就是日历啦。计算器啦。一些乱七八糟的东西)
push_to_talk(一键通)
services(网络或者服务)
settings(设置)
simatk

TOP

废话少说。回到正题。下面就是你的宝贝电话的脸面部分了----------------传说中的墙纸:
<wallpaper
  main_display_graphics="图片名称" />
(这里的图片名称就要包括扩展名了)这就是你的墙纸;
<screensaver
  main_display_graphics="图片名称" />     
这是屏保
<background
  main_default_bg="图片名称"
  grid_menu_bg="图片名称"
  note_bg="图片名称"

  idle_status_area_bg="spacer.png"
  idle_softkey_area_bg="spacer.png" />
这是一个元素。其中涉及到好几个背景的使用。我们一个一个的来看:
background
  main_default_bg="图片名称"
这个按软件上的说法是:主要背景(怎么软件上的东西都说的摸棱两可的?)。其实就是你在主菜单中选择一个进去之后的背景。
grid_menu_bg="图片名称"
这个是网格菜单的背景。
note_bg="图片名称"
这个是显示“正在打开文件”时候的那个小方块使用的图片(我也不知道这个应该叫什么。见谅~~~)
idle_status_area_bg="spacer.png"
  idle_softkey_area_bg="spacer.png"
这两条你要注意了。这就是传说中去掉桌面背景上下两条蓝边中最关键的部分。这里请注意。这里引用的图片文件名字并没有让你自己更改。而是使用固定的名称“spacer.png”。这个文件你要到论坛里来下了。。。大名鼎鼎的苹果小姐就有提供这个文件。(其实,有兴趣看这个的都已经是使用软件的老手了。我不用说,你也应该会怎么去蓝边了。我是在照顾硬撑到这里的新手而已。)这两条的主要意思就是:
待机时状态区(就是上边那个蓝边部分)使用透明背景
待机时软键区(下边的蓝边部分)是用透明背景
  接下来就是日历了的背景了:
<calendar_bg
  january="图片名称"
  february="图片名称"
  march="图片名称"
  april="图片名称"
  may="图片名称"
  june="图片名称"
  july="图片名称"
  august="图片名称"
  september="图片名称"
october="图片名称"
  november="图片名称"
december="图片名称" />
中文解释是:
日历背景                     一月
二月                            三月
四月                            五月
六月                            七月
八月                             九月
十月                             十一月
十二月
每个月的日历背景是自动更换的。这个大家都知道了的。
下面是音乐和电影播放器的背景了:
<radio_audio_bg
  radio_bg="图片名称"
  audio_bg="图片名称" />
这个就简单了。radio_bg是音乐播放器的。audio_bg是电影播放器的。大家把图片名字加进去就可以了。(我最后说一遍:名字要包括扩展名)。好了。下一个
<wait_graphics
  src="图片名称" />
这个我都不知道该怎么说了。。。就是在列表状态中。那个你按下它就下。你按上它就上用来选择文件的那个小条条(我的语言能力怎么退化了这么多?)。。。。。。对了。就是那个选择条(居然能想到这个词。。天才~)。这个选择条。你最好自己用PS做一个。5300的。我记得应该是286*53的刚刚好。这个就看自己的喜好了。下一个~~~~~~~~~~~!!
<highlight
  list="图片名称"
  active_idle_row="图片名称" />
这个也简单:
highlight
  list="图片名称"
这个就是那个选择条的高亮状态图片。你可以和正常的用同一张图。也可以换一个。
active_idle_row="图片名称"
这个呢就是。。。。。。。老实说,我也没弄明白这个到底应该怎样翻译。反正它就是等待状态中的那个图片。其实它和显示“正在打开文件”的那个用同一张图的。当然了。如果你不喜欢。你也可以换之。。。按照道理来说。它们应该是同一个功能里的。可我不明白。诺基亚为什么要把它们分开表示。而且这两个状态确实是可以用不同的图片的。好象一般的软件里没有把这两个分开吧??至少我用的就没有。

TOP

好了。接下来就到声音的部分了。也是最后一部分了:
<tones
  ringtone="来电音乐名称"
  msg_alert="信息提示声名称" />
<startup
  main_display_graphics="开机图片名称"
  tone="开机音乐名称" />
<shutdown
  main_display_graphics="关机图片名称"
  tone="关机音乐名称" />
<transformation_open
  main_display_graphics="开盖图片名称"
  tone="开盖音乐名称" />
<transformation_close
  main_display_graphics="合盖图片名称"
  tone="合盖音乐名称" />
</theme>
顺便说一句,开机,关机。开盖 合盖的图片可以换成动画的。。。。。自己看着办。。
OK。这篇教程到了这里。最重要的XML文档编辑就结束了。接下来。保存退出。然后把编辑好的TXT文件名字改为theme_descriptor.xml     注意。扩展名由原来的TXT改为XML了。。。。改后电脑会提示你。更改扩展名可能导致文件不可用。不用管它。点确定。
最后一步就是。文件整合了。把你在XML文档编辑过程中引用过的所有图片和音乐文件(这次是文件。不是文件名了。)连同编辑好的XML文档一起压在一个压缩包里。这里一定要注意的是。一起放进去的还要有一个名字叫spacer.png的文件。不然你的墙纸会有上下两条蓝边的。
压好后。把压缩包的扩展名。改成NTH。然后就装到你的机机(我知道这个词听起来挺别扭的)里去吧。。。。。
OVER~~~!!

TOP

简化一下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE theme PUBLIC "-//NOKIA//DTD THEME 2.0//EN" "theme.dtd">
<theme name="HandDrawGiel" version="2.0">
以上三句为开场白,主题名,版本等信息,只修改主题名
<colors  颜色定义段
display="main"  主显示
header_font_color="0xcc0033"  抬头字体颜色,如中*国移动;日期
status_area_font_color="0xcc0033"  状态栏字体,如右上角时间
softkey_font_color="0xcc0033"  三个软键的字体
calendar_highlight_color="0x999999"    日历高亮字体
idle_font_color="0xcc0033"    主待机屏幕字体
active_idle_active_font_color="0xffffff"    打开当前待机模式的列表字体
active_idle_content_background_color="0x333333"  当前待机模式列表背景
shortcut_bar_popup_font_color="0xffffff"    当前待机模式功能字体
shortcut_bar_popup_background_color="0x333333"    当前待机模式功能字体背景
menu_font_color="0xcc0033"    列表形式菜单字体
menu_highlight_font_color="0xffff00"    列表形式菜单选中字体
grid_menu_font_color="0x990000"    图标形式菜单字体
grid_menu_highlight_font_color="0xcc0033"    图标形式菜单字体
reorder_highlight_font_color="0xcc0033" /> :帮助等信息的字体

<menu_item :菜单功能项目
item_id="callregister" :通话记录
list_view_icon="log2.png" :列表菜单时的图标
grid_view_icon="log1.png" :图标菜音的图标-----
animating_grid="log2.png":选中时的图标
app_specific_bg="scr3.jpg"/>:多级显示时用的背景

<menu_itemitem_id="settings":设置
list_view_icon="set2.png"
grid_view_icon="set1.png"
animating_grid="set2.png"
app_specific_bg="scr4.jpg"/>

<menu_itemitem_id="organizer":管理器l
ist_view_icon="org2.png"
grid_view_icon="org1.png"
animating_grid="org2.png"
app_specific_bg="scr12.jpg"/>

<menu_itemitem_id="gallery":资料
list_view_icon="gal2.png"
grid_view_icon="gal1.png"
animating_grid="gal2.png"
app_specific_bg="scr7.jpg"/>

<menu_itemitem_id="services":网络
list_view_icon="web2.png"
grid_view_icon="web1.png"
animating_grid="web2.png"
app_specific_bg="scr5.jpg"/>

<menu_itemitem_id="media":影音天地
list_view_icon="med2.png"
grid_view_icon="med1.png"
animating_grid="med2.png"
app_specific_bg="scr9.jpg"/>

<menu_itemitem_id="applications":百宝箱
list_view_icon="app2.png"
grid_view_icon="app1.png"
animating_grid="app2.png"
app_specific_bg="scr14.jpg"/>

<menu_itemitem_id="contacts":通讯录
list_view_icon="con2.png"
grid_view_icon="con1.png"
animating_grid="con2.png"
app_specific_bg="scr11.jpg"/>

<menu_itemitem_id="simatk":SIM卡护展------
list_view_icon="oppl2.png"
grid_view_icon="oppl1.png"
animating_grid="oppl2.png"
app_specific_bg="scr15.jpg"/>

<menu_itemitem_id="push_to_talk":一键通
list_view_icon="ptt2.png"
grid_view_icon="ptt1.png"
animating_grid="ptt2.png"
app_specific_bg="scr8.jpg"/>

<menu_itemitem_id="messages":信息
list_view_icon="msg2.png"
grid_view_icon="msg1.png"
animating_grid="msg2.png"
app_specific_bg="scr6.jpg"/>

<wallpaper
main_display_graphics="wallpaper.jpg"/>:墙纸

<screensaver
main_display_graphics="screensaver.gif"/>:屏保

<background
main_default_bg="Wallpaper.jpg":墙纸
grid_menu_bg="Scr2.jpg":菜单背景
note_bg="12.png"/>:状态背景

<calendar_bg :日历背景
january="scr15.jpg":1月
february="scr3.jpg"
march="scr4.jpg"
april="scr5.jpg"
may="scr6.jpg"
june="scr7.jpg"
july="scr9.jpg"
august="scr10.jpg"
september="scr11.jpg"
october="scr12.jpg"
november="scr13.jpg"
december="scr14.jpg"/>:12月

<radio_audio_bg
radio_bg="radio.png":收音机背景
audio_bg="music.png"/>:音乐播放器背景

<softkey_bg
left="om_softkey_bg_left.png":左软键背景
middle="om_softkey_bg_middle.png":中软键背景
right="om_softkey_bg_right.png"/>:右软键背景

<wait_graphics
src="Wait Graphic.gif"/>:等待状态图片

<highlight :高亮标签
tab="12.png":主标签图片
list="hl2.png":列表菜单标签
grid="12.png":图标菜单标签
active_idle_row="h12.png":当前待机模式功能标签
active_idle_shortcut_bar="h12.png":当前待机模式功能选中标签
reorder="h12.png"/>:帮助等信息的标签

<tones
ringtone="POPO.aac"/>:铃声

<transformation_open :滑盖打开
main_display_graphics="nt_gfx_transf_open.gif":滑盖打开图片
tone="FluteNObirdopen.aac":打开声音
duration="1000"/>:时间(毫秒)

<transformation_close :滑盖关闭
main_display_graphics="nt_gfx_transf_close.gif":关闭图片
tone="FluteNObirdclose.aac":关闭声音
duration="1000"/>

</theme>主题结束

TOP

呵呵,晕了吗

TOP

看到眼花了,还是打印下来慢慢看。
http://www.nokiabbs.com/?a=eksn

TOP

好复杂。。。眼睛都花了

TOP

好好好好好好好好

TOP

内容太多,看得头晕!

TOP

 14 12
发新话题