一、简介===================废话区================(如果你对Rockbox、Rockbox的主题有了一定的了解,你完全可以跳过这些废话,当然,建议最好能看一看吧,因为我写得不对的,你可以指正。)由于Rockbox开发者少得可怜,Android下的开发者更少了,Android下的主题制作者可以说是更加的罕见,时代的进步,科技的发展,Iphone的触屏体验**,使得Rockbox在手机播放器领域并没有延续之前在MotoLinux下的辉煌,甚至AndroidRockbox的使用者远远没有任何一款能在Android下播放音乐的软件的人多,即使是知道有这么一个功能强大的播放器,但一看到那个播放界面,和烦琐的设置,却让使用者望而生怯。那么,今天发个主题制作的帖子,让有意自己制作主题,而又不知从何下手的朋友们大手的去制作自己想象中的主题,也让更多的朋友能用上更多好看的主题,那么在主题制作之前,我们先要了解一些必要的知识,这样才能更好的去制作主题。1)Rockbox主题是什么样的?Rockbox的主题,其实就是一些BMP的图片,贴在播放界面上,然后软件通过读取主题目录下的“主题名.wps”里的主题规则,来确定那些地方什么时候需要放上哪些图片,什么地方需要放什么文字,什么信息等。(比如返回按纽放哪个位置,进度条放哪个位置,歌曲标题放哪个位置等等)2)Rockbox主题包括哪些部分?介绍一下Rockbox的界面(见图解)1.状态条、2.菜单界面、3.音乐播放界面、(还有FM界面,安卓下暂时未实现)、4.图标、5.路径、6.滚动条、7.选择条、8.按钮、9.标签、10.进度条、11.专集封面、12.音量、等等,不过真正制作主题的时候倒不一定所有都要弄完。3)文件目录结构,及说明:(以某个主题为例)+Rockbox---------------------根+backdrops----------------背景-Tilewave.bmp+fonts--------------------字体-20-华文中宋.fnt+icons--------------------图标-Tilewave_icon.bmp+themes-------------------主题-Tilewave.cfg+wps----------------------播放界面主题(主要就是这个了)+Tilewave--------------主题图片目录注意:要与主题名相同-bg.bmp-pb.bmp-Tilewave.wps----------主题名以上是一个主题的大致目录结构,大概解释一下,bakcdrops目录,存放非音乐播放界面的背景(就是菜单等界面所看到的背景)。fonts目录,字体目录。主题设置里所看到的字体就是放在这。icons目录,图标目录(菜单文字前的那些图标)。themes目录,主题目录(包括菜单主题和音乐播放主题的路径和设置等),主题设置--主题浏览到的就是它wps目录,音乐播放界面主题,主题设置--音乐播放界面里浏览到的就是这个目录下的文件wps子目录,主题的图片资源目录,要与主题名相同,主题背景,音量图标,等都放在这里4)字体,Rockbox用的是什么什么字体来着,其实不用管它,有字体转换工具,使用非常简单,这样你就可以把你在windows下看到的标准字体转为Rockbox下的字体了。(详细请看下面的教程部分)5)主题怎么弄?Rockbox下的主题,是一个以文本形式标记主题规则的文本,你可以用任何一个文本编辑器来编辑它,有一个专用主题编辑器,使得制作rockbox主题非常简单明了。你可以试着用记事本打开一个主题文件看看(*,wps),(一堆乱七八糟的东西,)别急,每个标记都有格式的,比如%T(24,35,80,60,browse)这个标记的意思是,创建一个按钮,位置是x=24,y=35,宽80px,高60px,这个按钮是浏览按钮,等等。那么,接下来,开始吧!二、教程=======================================教程区======================================看了上面罗七八嗦的一堆,那么下面开始正题。下面每个小节基本上都是独立的,你只想看其中一点也可以。1.看懂别人的主题:一开始就想做主题,可能有点一步登天了,那么如果先去看看别人的主题,把别人的主题看懂了,能在别人的主题上加以修改,然后有了自己的想法以后,想自己做主题就简单了。(下面以看懂Tilewave主题为例)(1)主题编辑器的使用:1)下载RB主题编辑器,下载并解压Tilewave-320x480x32.rar里的Tilewave-320x480x32目录到桌面。2)打开rbthemeeditor.exe(直接运行不用安装),在菜单上点File--OpenDocument打开“桌面\Tilewave-320x480x32\wps\Tilewave.wps”可以先把主题编辑器界面里的:左边的“project”面版、又下角的“ParseTree”面版关闭,那么,左边是主题代码,右边是主题预览,(显示错位)点菜单栏的“View--Drviceconfiguration”将ScreenWidth(屏幕宽)改为320,ScreenHeight(屏幕高)改为480,关闭它,那么现在将可以看到下面的画面:主题正常显示了,红白格子,显示的是专辑封面,绿色的块是标记的触屏按纽(用鼠标点击,相应的状态也会跟着改变),“设备”的状态也是可以通过drviceconfiguration设置里修改的,例如:想修改音量大小,可以到HardwaveStatus里的CurrentVolume里修改,等等(这时候的字体是系统默认字体)(图片)(2)代码的规范:1)注释:左边的代码筐里显示了打开的WPS文件里的代码内容,RB规定以“#”开头的那行标记是作为注释用的,讲没有任何代码效果,一般将会在#后面放一些注释、说明、作者信息等,例如:#Themename:Tilewave在主题编辑器里将会以绿色显示2)标记命令:RB下的命令是以%开头,原型:%[函数]([参数1],[参数2])例如:%X(GB.bmp)解释为(载入BG.bmp)3)条件:%?[函数][值1命令]|[值2命令]|[值3命令]这个命令可以查询一个函数的返回值,例如:%?it%it|%fn(当前曲目是否有标题有:显示曲目标题|没有:显示文件名)有关这些完整的规则与标签语法,请查看:()在我的附件里也有一部分的标签定义,当然只供参考(3)看懂别人的主题:了解了代码规则以后,在对照“标签规则”,我们就可以对被人的代码进行解释了,看看别人的代码是什么回事吧。下面简单讲讲怎么看别人的代码:1)打开“Rockbox主题状态与文本标签.doc”,里面的内容来自rockbox网站,里面列出了Rockbox能用的文本标签,对照着这些标签的描述,在看主题的代码,你就知道代码里面到底写的是什么了。2)回到主题编辑器,看看下面的代码:你可以这样对照,%wd对应着Rockbox主题标签.doc里的“%wdHideStatusBar”翻译过来:隐藏状态栏(crtl+f来查找会更加方便),到这,你就会知道RB的主题是怎么个一回事了,那么,继续往下看。不过这个主题标签.doc只描述了文本类标签和一些状态的说明,有关图片、主题的配置、等等请参考“Rockbox主题规则与主题规定.doc”(复制自Rockbox网站)%wd-------------------------------隐藏状态栏%X(BG.bmp)------------------------载入一张位图(无坐标,在这里是背景图片)##*images------------------------注释:图片部分#%xl(C,volume.bmp,0,0,10)-----------预载入位图(只是预载入,需要%xd才会显示),编号是C,图片是音量.bmp,x=0,y=0,分割成10份(因为音量对应着10个状态,这样就可以在一张图里完成10张图的代码编写了)%xl(D,shuffle.bmp,89,5)-----------预载入位图,编号是D,shuffle.bmp,x=89,y=5,%xl(E,repeat.bmp,20,5,4)-----------预载入位图,编号E,循环模式.bmp,x=20,y=5,分割4份,就是将重复模式的4种状态放在一个图片里,显示时就能一一对应状态了。#browsefile-----------注释:浏览按扭%T(20,0,60,40,browse)-----------标记一个触屏按扭,位置是:x=20,y=0,宽60px,高40px,触屏对应命令是:返回文件浏览##*currenttrackinfo-----------注释:当前曲目信息#%V(49,56,150,-,-)-----------------标记一个显示框,位置是x=49,y=56,宽150px,高忽略,字体忽略%s%al%?it%it|%fn----------------滚动(%s),左对齐(%al),如果存在曲目标题(%it)则显示标题,否则显示文件名(%fn)##*playmode,repeat,shuffle-------注释:播放模式,重复模式,随机播放状态#%V(0,180,-,-,-)--------------------标记一个显示筐,位置:x=0px,y=180px,宽高字体忽略#repeat--------------------注释%xd(E,%mm,-1)----------------------显示一张预载的图片,编号是E,显示的位置将取%mm(循环模式,将返回1,2,3,4这4个值)的值,将对应无循环,单曲循环,全部循环,A-B循环%T(12,0,66,40,repmode)--------------标记一个触屏按钮,对应循环模式命令(这时的坐标将以显示筐为准),坐标:x=12,y=0,宽66,高40##*volume------------------------注释:音量#%V(81,433,-,-,-)-------------------标记一个显示筐%xd(C,%pv,1)-----------------------显示一张图片,编号C,按照%pv(音量,将返回0-10,0表示静音)返回的值显示,偏移+1%T(0,0,213,20,volume)--------------标记一个触屏按钮,位置:x=0,y=0,宽213px,高20px,命令是音量控制当你把其中一些代码看完,或者全部看完,并翻译完以后,你也可以试着去修改修改里面的内容,例如:%s%al%?it%it|%fn,查找到,%it讲显示曲目标题,如果没有曲目标题将显示文件名。如果想把这个位置改为显示当前曲目艺术家,那么,在%it标记的上面,艺术家“Artist”对应的标签是%ia,把%it改为%ia就可以了,当然,如果id3信息里没有艺术家的话,就会显示文件名了,那么,想改为显示当前曲目所在目录的上两层目录名,在“B.5Informationaboutthefile”里找到“%d(N)”N代表的是倒数第几层目录,那么在将代码里的%fn改为%d(2)即可,这样,本来显示标题的位置,将显示艺术家了。到这,估计你可以看懂别人的主题代码了,接下来,为什么不可以动手试着修改看呢?下面将以如何修改一个主题的分辨率,来透彻了解RB主题制作,并会修改一个主题。安卓网下发的,放这也发发,请高手们用力指教,感激不已!2.修改主题分辨率:(1)图片分辨率的修改要改分辨率,那自然主题所使用的分辨率肯定是要改的,以320*480分辨率的主题修改成240*320分辨率来讲述修改的流程1)将“桌面\Tilewave-3