52dopod智能手机论坛's Archiver

xiaolon 发表于 2007-1-16 19:25

主题制作教程篇--如何从改主题开始到做主题

大家不要认为做主题很难,其实很简单,并不需要化精力学习XML教程,也并不需用做主题软件来帮忙,用做主题软件做出来的主题只能是些简单主题,而且不很到位,尤其碰到第三方插件,不支持或支持不好,不如用手工做简单。用它来配色还有点用的。
要学做主题先要明白主题的工作原里,明白了工作原里,看这篇文章就容易懂,上手也快.
先说说什么是主题,手机在屏幕显示的内容,都是靠插件来完成的,安装好的插件怎么才能在屏幕上显示插件内容呢,就靠主题来衔接,主题由主题XML文件和图片构成,存放在手机的\Storage\Application Data\Home\下。
说白了,主题就是连接插件和桌面屏幕的桥梁,这座桥是由XML文件和图片构成,XML文件由代码构成.
所以要改主题或做主题,首先要明白主题XML文件是如何构成的和什么是一段完整代码(即没有基本语法错误的代码)。
一。主题XML文件的构成
简单的说一个主题XML文件由默认段代码+配色段代码+插件代码组成。
打开XML文件,最上面大段代码我们称它默认段,是一个主题各方面的默认设置,插件代码里没有特别设置,主题就调用默认设置,里面最主要的是要知道主题背景图的路径设置在这里

<?xml version="1.0" ?>
<home>
<author>lzw645</author>
<title lang="0x0409">系统修改</title>
<version>1.0</version>
<default font-face="nina" font-size="14" font-weight="normal" padding-left="4" padding-right="4" bgcolor="transparent" fgcolor="#BBCBD2" padding-top="2" b-border-color="transparent" b-border-width="0">
<format state="selected" fgcolor="#ffffff" font-weight="500"/>
</default>
<background bgimage="4apple017.jpg" valign="bottom" />
具体含义先不忙弄清楚。不过最后一句是背景图路径是要弄清楚的,如果背景图直接放在\Storage\Application Data\Home\下,这里光写背景图文件名就可以了,如果是放在Home下某个文件夹里的就需要全部路径了,<background bgimage="\Storage\Application Data\Home\ABC\4apple017.jpg" valign="bottom" />
下面是配色段代码,这是主题颜色的设置部分。
如:
<scheme>
  <color name="COLOR_WINDOW" value="#FFFFFF" />
  <color name="COLOR_WINDOWTEXT" value="#000000" />
                        .
                        .
                        .
  <color name="COLOR_HOMERULE" value="#003B8F" />
  <color name="COLOR_HOMEHIGHLIGHT" value="#BBCBD2" />
</scheme>
对改主题来说上面的2段代码可以基本不动。
再下面才是我们主要要讲的插件代码
主题XML文件(能直接在屏幕上显示内容的)是由一段一段的插件代码组成,代码由英文和特殊符号组成,(代码你可以理解为插件与屏幕上显示内容的关联,代码和插件少了那样屏幕都不会显示内容)在你不太了解这些英文和特殊符号具体意思的情况下也能改主题或做主题,这就是主题的简单之处,因为它有规律。

二。XML插件代码规律
手机屏幕上显示多少行内容,这个主题XML文件中的插件代码就有多少段,位置从上到下是对应的,如第一行显示是信号、电量,那第一段就是信号、电量代码,以此类推,排满为止,每段代码都可以自定义高度,所有段的代码高度相加不能超过200,手机满屏是200,超过200就会错屏(就是到第二页去了)。多页主题的原理就是错屏,把每个插件的代码高度设置为200,如果有5段插件代码就是5页。

三。完整代码
插件代码是从配色代码下面开始的算第一段,(一般第一段代码是显示未接电话的代码,有未接电话才在屏幕上显示,)直接能在屏幕上显示内容,和屏幕对应的第一段代码,一般是信号,电量代码。
完整代码最基本的就是要知道一段代码的头和尾在那里,如时间插件代码
<plugin clsid="{E09043DF-510E-4841-B652-388316977A7A}" name="carrier" height="40">
                <label y="3" halign="left">
                <text><carrier/></text>
                </label>
                <clock>
                <time x="1" y="1" font-size="20" font-weight="bold" halign="right"/>
                <date x="1" y="19" mode="long"  halign="left"/>
                </clock>
        </plugin>
<plugin file=…………height="40">是头,</plugin>是尾,中间是内容,可多可少,任何代码都是这样组成的。注意这里height="40"就是可以自定义的代码高度,任何代码都必须有这个参数,如果设为0,屏幕上就不显示,没有位置。代码中间部分是内容和内容的参数,x="?" y="?"是这个内容在175*40里面的具体位置坐标,x值超过176,y值超过40就无法显示了。如果没有中间部分代码,光有头和尾,那就是空白代码,在屏幕上占有位置,但不显示内容
<plugin clsid="{E09043DF-510E-4841-B652-388316977A7A}" name="carrier" height="40">
</plugin>
这种代码可以当分隔段来使用,因为有些主题在屏幕上显示并不是一个内容一个内容紧挨着。

四。改主题
1.基本道理,比如一个主题屏幕上显示有1,2,3,4,5行不同内容,(能显示5行不同内容,这说明5个不同内容的插件都已经安装了,一般大部分是系统自带的)那它的主题XML文件里一定从上到下排列着这1,2,3,4,5个插件的代码。
2.粗改,(随意改变插件位置和内容)
替换:不需要知道我没说的代码内容参数,采用替换整段代码,比如有一个主题屏幕上显示有5行不同内容,其中第3行内容不喜欢,想用其他内容,就把其他内容的代码复制过来替换,
其他内容的代码从那里来,从你看到的其他有该内容的主题里来,先看该内容在屏幕上是第几行,然后打开它的XML文件,在第几段找到该代码,复制后替换到原主题XML文件中的第3段,这时唯一要注意的是代码高度要和原来的一样。
删除:直接把整段代码删除,比如把第三段代码删除,这样屏幕显示上第四行内容就上去了,顶在了原来显示第三内容的位置上了,如果想保持原来位置不变有2个方法,1.就是第三段代码用空白代码替换,空白代码高度和原第三段代码高度一样,2.把原第三段代码的高度值加到第二段代码的高度值上。
添加:首先看原主题屏幕有没有空位置,有就估计好空位高度直接添加新内容代码,这一点相对难一点,因为大部分情况添加后位置不是太准确,这需要细改,横向位置改这段代码中x="?",纵向小位置改这段代码中y="?",大位置就修正这段代码(包括上面段代码、下面段代码)的代码高度,上面段代码高度小了,自身添加段代码就上去了。
3.细改
这需要知道代码内容参数的意思,英文好的人容易明白些。
位置:上面已经说了。补充3个参数,halign="right"是指右对齐,halign="left"左对齐,halign="center"中对齐。用了这个参数,x="?"就不需要了。
字体大小粗细颜色:一段插件代码的中间段里(除去头尾)一般有font-size="14",font-weight="bold",fgcolor="#FFFFFF"的英文,14就是字体大小,一般14刚好。bold是粗体,但是对汉字不明显,所以建议用数字来表示,font-weight="600",汉字显示就是粗体了,一般用500,"#FFFFFF"是颜色代码,不同颜色有不同代码表示,"#FFFFFF"是白色,"#000000"是黑色,具体有颜色代码表可以参考。
大部分插件在屏幕上是可以选择的
如:
<plugin clsid="{2F930BF0-6FE9-4a53-9E17-88E9247BAB48}" name="SMScount" height="23" >

<label y="-1" x="2">
<format state="unselected"  bgcolor="transparent" fgcolor="#9988F0" font-weight="500" font-size="14" />
<format state="selected"  bgcolor="transparent" fgcolor="#ff0000" font-weight="600" font-size="14" />
<text>新短信(<unreadSMS />) 件</text>
</label>
</plugin>

<format state="unselected"  bgcolor="transparent" fgcolor="#9988F0" font-weight="500" font-size="14" />表示不选择时的状态,如字体大小粗细颜色。
<format state="selected"  bgcolor="transparent" fgcolor="#ff0000" font-weight="600" font-size="14" />表示选择时的状态,如字体大小粗细颜色。
bgcolor="transparent"是背景透明。
这里需要明白的是一段代码中并不是这些参数都是必须的,因为主题XML文件的默认段代码中已经有了一些基本设置,插件代码中没有参数,主题就自动调用默认设置。
改主题无非就是这些了,当然有许多插件代码中的参数这里没有提到,因为不同的插件有不同的参数,你关键要做的不是刻意去记这些参数,掌握这些参数,这样变成做学问了,失去了做主题的乐趣了。关键是要动手做起来,到最后要靠看的多了,改的多了,做的多了,自然而然的掌握了,记住了。

在我们知道了主题的原理、构成和一些基本参数后,脑子里就应该这么想,原来做主题很简单,就象搭积木,一段段的插件代码在XML文件里从上到下拼起来,那屏幕上一行行内容就从上到下出现了,一一对应,插件代码就用拿来主义,因为你已经学会了在XML文件找代码位置,屏幕上是第几行,XML文件里就是第几段,你也知道了一段代码是有头有尾的,拿来也要完整的拿来,不要有头没尾,这样就语法错误了。
时间长了,你就不用再从上到下的数是那段代码了,一看名称就知道这是什么插件的代码了。

五.做主题
做主题需要知道的是一个主题XML文件由默认段代码+配色段代码+插件代码组成。
其实你已经会做主题了,不就是搭积木吗?现在缺少的只是主题素材。这个需要自己准备,包括背景图,配色,配色也不用自己做,看到某个主题的配色不错,把它的配色代码拷贝过来就行了。这需要平时收集。接下来的就是插件代码,看到某个主题的插件显示方式不错或有新插件,把它的插件代码拷贝过来,这也需要平时收集。
如何开始呢,
1.构思,想做什么样的主题,屏幕上如何布局,想显示多少内容,这张背景图配什么颜色好等等,这些都是做主题必须要想的,但这不是我要说,每个人的审美观不一样,屏幕上需要显示的内容也不一样,我只说方法和技术。
2.找一个和你想法最接近的主题XML文件,用IE浏览器打开,在IE浏览器工具栏里选择查看/源文件,就自动用记事本打开了XML文件,在这里就可以根据自己的需要来替换、添加、删除代码以及调整每段插件代码中的字体大小粗细颜色位置。
3.检查,记住,没把握的情况下,每改完一段代码就保存,刷新浏览器,检查是否有错误,有错误IE里是看不到代码的,这时再打开源文件,检查这一段代码中那里有错,比如少了空格,符号,标点什么的。如果全部改完再检查,这样找错就比较麻烦了,范围大了。这里需要提醒的是保存问题,如果XML文件里有中文字,那要采用另存为,界面里有个编码,选择UTF-8编码保存,不然也会显示出错的,一但显示出错即
浏览器里看不到代码,这样的主题XNL文件拷贝到手机里在设置/主屏幕里是找不到的。
其实做主题就是个改主题的过程,你就是对某个一点也不了解的插件,也可以把它做到你的主题中去,你安装一个新插件,一般都会带个主题过来,新插件的代码就是从这里来,不过现在各论坛里有那么多的主题,也就是说你可以找到各种插件代码做素材。

六.特殊插件主题
做的原理还是和上面说是一样的。只是有的要多些文件,(如农历插件要有MSN文件夹,里面要有网页文件),多些定向参数,意思是这些参数用在其他插件里是无效的,前面我说的参数是基本参数,任何插件里都有效,都是一样的表述方法。
至于什么特殊插件要多什么特殊文件和参数也不要太关心,因为我们不是自己做插件,我们是拿来主义,有现存的主题做参考,其实真正多文件的需要手工加而且不和主题文件放在一起的就是农历插件,其他特殊插件要加的都会随插件的安装而自动添加好的,如有的时钟插件有钟面背景的图片文件。
对于特殊插件中的特殊参数只有慢慢自己琢磨了,(英文好的容易琢磨,还有就是试验,调整一个参数,再到桌面上来看看有什么变化)我也有许多特殊参数不明白,但是这并不影响做主题,只影响做主题随意性。
还有个固定快捷方式插件需要注意的是路径问题,因为程序快捷方式就是个路径,每个人的手机里安装的程序位置都不可能是完全一样的,所以你用拿来主义,把其他人做的主题里的固定快捷方式插件代码拿来用,路径这部分就需要根据自己手机安装程序位置来修改。
七.总结
前面说了这么多,有点乱,归纳一下。
1。明白主题是插件和桌面的联系人或桥梁(为了形象点的比喻)。
2。主题是由主题XML文件和图片组成。真正的联系人或桥梁是XML文件中的插件代码。
3。一个主题XML文件由默认段代码+配色段代码+插件代码组成。
4。从上而下一段段的插件代码表现在屏幕上是从上而下一行行插件内容。
5。根据插件和屏幕之间从上而下的一一对应,很容易在XML文件中找出某插件的代码。
6。明白了一一对应的位置关系,就很容易根据屏幕的位置在XML文件中替换,删除,添加插件代码,从而实现根据自己需要来改主题布局。
7。明白一些插件代码的通用基本参数,通过修改参数来实现按自己需要改变主题文字的大小,颜色,局部位置。
8。平时收集些插件代码和配色代码,到时候根据需要挑几段插件代码,挑段配色代码一组合加上背景图,一个主题就诞生了。
9。特殊插件特殊研究,根据前面的方法先把它搬上屏幕再说,然后慢慢琢磨研究试验特殊参数。
10。做主题需要参考的文章不要看太多,容易乱,按我说的思路来,大胆上手,处理代码要细心,别丢三拉四。推荐2篇必用的文章,



         
如果你一口气看完,由于内容多,没什么印象,还是一片糊涂,分不出什么是重点,无法马上上手。所以点拨几点:
1。看了文章首先要掌握的是在XML文件里找代码位置,找不到位置,你从何下手。这是最关键的.比如,这个主题里有天气预报,那天气预报的代码在XML文件的那里呢?你找的到吗?,如果还找不到,继续看文章中有关位置的部分:
主题XML文件由默认段代码+配色段代码+插件代码组成
对改主题来说上面的2段代码可以基本不动。再下面才是我们主要要讲的插件代码
手机屏幕上显示多少行内容,这个主题XML文件中的插件代码就有多少段,位置从上到下是对应的
一个主题屏幕上显示有1,2,3,4,5行不同内容,那它的主题XML文件里一定从上到下排列着这1,2,3,4,5个插件的代码。
2。位置能找到了,那就要知道完整代码的概念,不然还是没办法下手,代码要有头有尾,就是一段是从那里开始,又到那里结束,<plugin file=…………是头,</plugin>是尾。
3。上面2点弄明白了,你可以动手了,从最简单的开始,比如把主题里天气预报去掉,那就简单了,找到有头有尾的天气预报的代码删除。接着可以替换,在原来天气预报的位置上换上短信,那也简单,从其他XML文件里复制有头有尾的短信,粘贴在有头有尾的天气预报的代码上,就OK了。当然还要注意一下代码高度和局部位置问题,文章里都有写。
4。以上几点熟练了,再回头去看就比较有头绪了。
5。另外要有大框架概念,大框架就是一个主题XML文件始终是由默认段代码+配色段代码+插件代码组成的,所以不管插件代码变化再多,前2个段(默认段代码和配色段代码)始终在最上面这个位置上,变的只是插件代码,只要一一排下来,(排下来的插件代码需要有头有尾巴),这就是一个主题文件了,大框架就好了,就可以在屏幕上显示了,然后再做些局部位置修改就成了。要有大框架概念,千万不要框架还没搭起来,就在钻研细部了。这样永远做不出主题来的,情愿先做一个很难看,内容很少的主题,即有一个正确的主题文件。

kittydopod830 发表于 2007-1-30 14:35

:33 好复杂啊!

qqzouxiang 发表于 2007-2-5 16:15

强烈支持!这两天正学呢

wenwen.m 发表于 2007-2-6 23:16

学习一下,感谢小龙分享。:31

mousede 发表于 2007-2-8 14:00

汗汗汗汗1

hzw6834 发表于 2007-2-9 09:27

学习一下:a38

gduser 发表于 2007-2-15 17:20

看不懂,嘿嘿:27

KAKA大魔头 发表于 2007-2-22 20:32

哇·!强烈支持这种教程!!

偶要明天才能拿到手机,一定好好自学一下~

有不明白的地方就来问问~哈哈

8神经 发表于 2007-7-22 01:52

支持啊,有点复杂

暴雨中裸奔 发表于 2007-7-22 15:21

支持,我一定好好学!

erikohj 发表于 2007-7-23 21:09

头大~~不过真心谢谢

摩卡咖啡 发表于 2007-7-29 16:34

学习中!不过好复杂呀!!!谢谢!!!

garaxy 发表于 2007-8-23 03:22

强悍!!!

顶`~~

newbit 发表于 2007-9-8 23:57

学到了。WM5下的TSK好像是加密的,不知是否有工具转换成XML。

9头鸟 发表于 2007-9-13 17:34

能给我个制作主题的软件连接吗?谢谢大家!

9头鸟 发表于 2007-9-13 17:34

要PPC2003系统的,再次谢谢大家!

eez 发表于 2007-9-20 21:59

WM5的TSK如何修改呢??

城市边缘 发表于 2007-9-29 13:05

买卖三三,也太复杂了嘛,有没有简单一点的.

hongfu8 发表于 2007-10-8 18:58

Very good。谢谢了。

liuyi881 发表于 2007-10-18 20:31

看看得了,做就免了!

げ灞氣づ 发表于 2007-10-25 05:46

看到头晕了

Sealer 发表于 2007-11-1 15:28

多 谢 !

luobin 发表于 2007-11-13 21:10

谢谢了!有点复杂,看着看着头就晕了.

没事儿换着玩 发表于 2007-12-1 13:39

帮忙改下这个C720主题吧

这个主题用在C720上面只有两个问题,开机画面不能全屏,通话记录和拨号画面不能全屏,如果能把这两个画面改成C720全屏显示的,我觉的这个主题真的无题了。

[img]http://www.dpdbbs.com/attachments/month_0711/20071130_2adf90530ee1fa47c4d3FRBip0cGNDOZ.gif[/img]

一骑绝尘 发表于 2007-12-11 14:41

学习一下!

wlbo1982 发表于 2007-12-12 01:09

太强了,一时半会的也学不会,慢慢来

dgdj_imy 发表于 2007-12-18 20:38

好文章!

正想自己做个简单主题,
好,顶!!!

minyu1231 发表于 2008-1-30 21:37

额滴神呐。。。

好复杂的说。。。。。。。。。

Ghost710 发表于 2008-2-19 12:16

学习学习~~~复杂也要学啊~

wjzh27 发表于 2008-2-24 00:27

可以给自己聪电

页: [1] 2

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.