问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

千千静听皮肤怎么做??

发布网友 发布时间:2022-04-27 13:25

我来回答

3个回答

热心网友 时间:2022-04-24 18:53

一、了解千千静听皮肤制作是怎么一回事?
1、如果您是位从未接触过皮肤制作的人,那么请先仔细看下面的这段话:
如何把设计好的皮肤效果图应用到千千静听软件上去,有两个主导思想您应该了解:一个是需要把效果图上面的控件(或称按钮)单独切出来,另一个是需要把上一点说的控件(或称按钮)的坐标找到,为它精准定位,是不是听的有点眉目了,那么我们接着往下讲。

2、千千的皮肤位于安装目录下的Skin文件夹内,扩展名可以为.skn或.zip,实际上二者是一样的。对于前者,可以先将.skn的扩展名改为.zip(要在系统中显示文件的扩展名,依次点击"工具"-"文件夹选项"-"查看",再把"隐藏已知文件类型的扩展名"前的小勾去除即可),然后将其解压到单独的文件夹,进入该文件夹,可以发现里面包含了许多bmp格式的图片和若干个xml文件,他这些文件便是皮肤的组成部分了,bmp图片是各个窗口的背景及按钮图片,Skin.xml则是配置文件,定义了皮肤的基本信息、窗口及按钮的位置、大小等,它是基于XML格式的文件,可直接用系统自带的记事本或者其它文本编辑工具打开的。

好,了解以上的基础知识后,我们就开始学习实际的制作过程。

二、开始制作啦!
按照四个步骤进行:(A)切图(B)修改配置文件(C)打包成皮肤文件(D)应用皮肤

(A)切图:
用PS或FW打开设计效果图,整体观察一下,下面讲一下哪些图片是要单独切出来的以及图片的命名。

一、主窗口的控件
(1)主窗口背景 命名:player_skin.bmp

重点:边缘小圆角的镂空处理,把镂空填充成(#ff00ff)这个颜色,要细心处理这部分哦,边缘要1像素1像素的填充(如上图,镂空部分的颜色处理)

(2)最小化按钮(4个状态)
命名:minimize.bmp

重点:凡是功能按钮都要做4种状态,并把这四种状态做在一张图里,存储成.BMP格式,注意每种状态按钮他的宽度和高度要一致,说一下每种状态代表的含义
第一个状态:自然状态
第二个状态:鼠标划过时的状态
第三个状态:鼠标按下去时的状态
第四个状态:按钮失效时的状态(举个例子,比如播放列表只有一首歌曲,那么“下一首”按钮就是无法点击的,那么此时这个按钮状态就是失效时的状态)

3)迷你模式按钮
命名:minimode.bmp
同上,这里不再赘述了。

(4)关闭按钮
命名:close.bmp

(5)播放进度滑块(本例中播放进度条上的小圆按钮)
命名:progress_thumb.bmp

重点:这个小按钮是需要脱离背景部分单独扣出来的,那么镂空部分需要如何处理才能最终在界面上显示出透明的效果呢,解决的办法和上面的大背景镂空处理一样就是把镂空填充成(#ff00ff)这个颜色,如上图。

(6)播放进度填充背景图
命名:progress_fill.bmp

缓冲进度条填充背景图
该进度条在听在线歌曲发生缓冲时出现,如果没有该元素,默认方式是会将进度条的颜色加深,作为缓冲条颜色显示。
命名:progress_fill2.bmp

(7)播放列表窗口打开关闭按钮
命名:playlist.bmp

(8)均衡器窗口打开关闭按钮
命名:equalizer.bmp

(9)歌词窗口打开关闭按钮
命名:lyric.bmp

(10)“上一首”按钮
命名:prev.bmp

(11)“播放”按钮
命名:play.bmp

(12)“暂停”按钮
命名:pause.bmp

(13)“下一首”按钮
命名:next.bmp

(14)“打开播放文件”按钮
命名:open.bmp

(15)音量小喇叭按钮
命名:mute.bmp

(16)音量进度背景填充图
命名:progress2.bmp

(17)音量滑块
同(5)

二、均衡器窗口的控件
(18)开启按钮
命名:eq_enabled.bmp

(19)重设按钮
命名:reset.bmp

(20)配置按钮
命名:eq_profile.bmp

(21)关闭按钮,切图同主窗口上的关闭按钮
(22)平衡器环绕声所有滑动的小按钮 同(5)
(23)平衡,环绕填充背景
命名:eqfactor_full2.bmp

(24)均衡填充背景
命名:eqfactor_full.bmp

三、播放列表窗口的控件
(25)关闭按钮,同主窗口关闭按钮
(26)工具条按钮,
命名:playlist_toolbar.bmp

热点状态命名:playlist_toolbar_hot.bmp

(27)滚动条上下按钮
命名:scrollbar_button.bmp
重点:将上下按钮拼在一张图上制作

(28)滚动条滑动按钮
命名:scrollbar_thumb.bmp

(29)滚动条背景
命名:scrollbar_bar.bmp

四、歌词秀窗口的控件
(30)关闭按钮,同主窗口
(31)总在最前按钮
命名:ontop.bmp

五、音乐窗窗口的控件

上图为千千音乐窗界面,其中用绿色边框套住的部分为显示部分,和皮肤设计无关,就是说我们要做的是绿色边框外的内容。

好,明确了制作部分,开始讲制作过程,首先,要制作一个窗口背景,就是图中显示的最外面的蓝色风格的窗口,像主窗口一样,不难理解,格式同样为.bmp,需要设置透明色背景(#FF00ff),注意圆角像素的处理。

然后制作窗口里的控件,上图中用红色框标出了所有控件,包括后退、前进、刷新、关闭、多选框、连接文字区。其中后退、前进的功能是像网页一样的控制当前页面,并不是歌曲的后退、前进,不过也没影响,不多说了。

最后,还要制作一个按钮,用来打开音乐窗,按钮要做在主窗口上,做主窗口时别忘了留出地方哦...

具体切图示例如下,大家一看就会明白啦:

(B)修改配置文件
一、首先看一下skin.xml这个配置文件
<skin version="2" name="静听•蔚蓝" author="千千静听" url="http://www.ttplayer.com" email="none" transparent_color="#ff00ff">
以上是皮肤的基本描述信息,请根据您自己的情况填写,分别是版本号,皮肤名称,皮肤作者,地址,电子邮箱,透明色的设置
1、<player_window>和</player_window>之间的代码
它是描述主窗口的参数设置的
Position 是坐标定位,image是图片名称,就是我刚才讲述的每个图片的命名
坐标由4个数字组成,中间用逗号隔开,前两个数字是图片左上角的x坐标和y坐标,后两个数字是图片右下角的x坐标和y坐标,请注意,这里的右下角x坐标和y坐标都要多算一个点,否则播放器会少显示两条边;
这里需要注意的是:每个窗口的位置是组合窗口后抓的坐标,而每个窗口上面的按钮控件是单独定位的,比如,我们要获得歌词秀窗口上面的关闭按钮的坐标,是要把歌词秀窗口的左上角定位在切图软件(0,0)坐标上,然后再抓关闭按钮的坐标。
可以参考下图来理解代码

<player_window image="player_skin.bmp">
<play position="50, 123, 90, 163" image="play.bmp"/>
<pause position="50, 123, 90, 163" image="pause.bmp"/>
<prev position="9, 123, 49, 163" image="prev.bmp"/>
<next position="132, 123, 172, 163" image="next.bmp"/>
<stop position="91, 123, 131, 163" image="stop.bmp"/>
<mute position="183, 137, 194, 148" image="mute.bmp" />

<lyric position="248, 112, 272, 126" image="lyric.bmp"/>
<equalizer position="223, 112, 242, 126" image="equalizer.bmp"/>
<playlist position="197, 112, 216, 126" image="playlist.bmp"/>
<browser position="214, 86, 276, 106" image="browser.bmp" />

<minimize position="230, 3, 247, 21" image="minimize.bmp"/>
<minimode position="248, 3, 265, 21" image="minimode.bmp"/>
<exit position="266, 3, 283, 21" image="close.bmp"/>

<progress position="7, 112, 184, 123" bar_image="" thumb_image="progress_thumb.bmp" fill_image="progress_fill.bmp"/>
<volume position="197, 136, 277, 147" vertical="false" bar_image="" thumb_image="progress_thumb.bmp" fill_image="progress2.bmp"/>

以下文字是播放器上面的一些显示文字的设置
Icon是千千静听的logo;
info是音乐标题和专辑歌手的信息,轮显在播放器窗口上;
led是时间数字,这里不是文字代码,是做好了一张图片,这张图片由大小相等的12个字符组成, 0 1 2 3 4 5 6 7 8 9 : -
记住这12个字符缺一不可。
Stereo 是立体声的字体设置
Status是状态的字体设置
Visual是视觉效果的设置,这里面只是简单定义了位置,更详细的设置请看Visual.xml文件

<icon position="4, 3, 20, 19" image="TTPlayer.ico"/>
<info position="21, 34, 208, 49" color="#ffffff" font="Tahoma" font_size="13" align="left"/>
<led position="160, 37, 270, 49" image="number.bmp" align="right"/>
<stereo position="224, 54, 273, 70" color="#ffffff" font="Tahoma" font_size="13" align="right" />
<status position="200, 70, 273, 86" color="#ffffff" font="Tahoma" font_size="13" align="right" />
<visual position="17, 56, 185, 106"/>
</player_window>

2、歌词秀窗口的代码
参考如下图一起看

<lyric_window position="0, 393, 287, 475" resize_rect="49, 25, 245, 73" image="lyric_skin.bmp">
<lyric position="10, 25, 277, 73"/>
<close position="221, 3, 283, 20" image="close.bmp" align="right"/>
<ontop position="202, 3, 264, 20" image="ontop.bmp" align="right"/>
</lyric_window>

3、均衡器窗口的代码

<equalizer_window position="0, 165, 287, 279" image="eq_skin.bmp" eq_interval="5">

<close position="266, 3, 283, 20" image="close.bmp" align="right"/>
<enabled position="152, 3, 187, 21" image="eq_enabled.bmp"/>
<profile position="224, 3, 259, 21" image="eq_profile.bmp"/>
<reset position="188, 3, 223, 21" image="reset.bmp"/>
<balance position="15, 45, 71, 56" thumb_image="progress_thumb.bmp" bar_image="" fill_image="eqfactor_full2.bmp"/>
<surround position="15, 76, 71, 87" thumb_image="progress_thumb.bmp" bar_image="" fill_image="eqfactor_full2.bmp"/>
<preamp position="81, 36, 92, 99" thumb_image="progress_thumb.bmp" bar_image="" fill_image="eqfactor_full.bmp"/>
<eqfactor position="115, 36, 126, 98" thumb_image="progress_thumb.bmp" bar_image="" fill_image="eqfactor_full.bmp"/>
</equalizer_window>

4、播放列表窗口的代码

<playlist_window position="0, 279, 287, 393" resize_rect="61, 43, 265, 105" image="playlist_skin.bmp">
<close position="221, 2, 283, 19" image="close.bmp" align="right"/>
<toolbar position="10, 24, 278, 41" image="playlist_toolbar.bmp" hot_image="playlist_toolbar_hot.bmp" align="left"/>
<scrollbar buttons_image="scrollbar_button.bmp" thumb_image="scrollbar_thumb.bmp" bar_image="scrollbar_bar.bmp" align="center"/>
<playlist position="10, 43, 278, 105" selected_image="playlist_selected.bmp"/>
</playlist_window>

1、 迷你窗口的代码

<mini_window image="mini-player.bmp">
<play position="177, 3, 271, 27" image="play_mini.bmp" />
<pause position="177, 3, 271, 27" image="pause_mini.bmp" />
<prev position="153, 3, 247, 27" image="prev_mini.bmp" />
<next position="224, 3, 318, 27" image="next_mini.bmp" />
<stop position="201, 3, 295, 27" image="stop_mini.bmp" />
<lyric position="269, 17, 379, 27" image="lyric_mini.bmp" />
<minimode position="272, 3, 335, 20" image="minimode.bmp" />
<minimize position="255, 3, 317, 20" image="minimize.bmp" />
<exit position="289, 3, 351, 20" image="close.bmp" />
<icon position="3, 6, 19, 22" image="TTPlayer.ico"/>
<info position="27, 7, 142, 22" color="#ffffff" font="Tahoma" font_size="13" align="left"/>
</mini_window>

2、 音乐窗的代码(代码后面//部分为注释)

<browser_window position="540, 0, 810, 336" image="browser_skin.bmp" transparent_color="#ff00ff">
<close position="452, 3, 469, 19" image="close.bmp" /> //关闭按钮位置
<backward position="112, 3, 133, 19" image="browser_backward.bmp" /> //后退按钮位置
<forward position="148, 3, 169, 19" image="browser_forward.bmp" /> //前进按钮位置
<refresh position="186, 2, 207, 18" image="browser_refresh.bmp" /> //刷新按钮位置
<startup position="7, 458, 144, 473" ckbox_image="browser_startup.bmp" interval=4 color="#ffffff" font="SimSun" font_size="12" /> //多选框的位置,注意X坐标要包括后面的文字,interval的值为多选框和文字之间的距离
<linktxt position="280, 457, 464, 472" color="#ffffff" font="SimSun" font_size="12" /> //连接文字区域,建议多留一些,以显示更多的文字内容
<browser position="9, 26, 464, 447" /> //html网页位置,和“歌词秀”中的歌词显示范围性质一样
</browser_window>

二、下面看一下Lyric.xml这个配置文件
以下是歌词文字的设置,分别定义了字体类型,字体颜色,高亮颜色和背景颜色
<ttplayer_lyric>
<Lyric
Font="-11,0,0,0,400,0,0,0,134,3,2,4,49,Tahoma"
TextColor="#008CC1"
HilightColor="#005489"
BkgndColor="#F4FBFE" />
</ttplayer_lyric>

三、下面看一下Playlist.xml这个配置文件
这个是播放列表窗口的文字设置,分别定义了字体类型,字体颜色,高亮颜色,第一背景颜色,数字颜色,时间颜色,当前选择颜色,第二背景颜色(可以和第一背景颜色一致)
<ttplayer_playlist>
<PlayList
Font="-11,0,0,0,400,0,0,0,134,3,2,4,49,Tahoma"
Color_Text="#008CC1"
Color_Hilight="#005489"
Color_Bkgnd="#EAF5FA"
Color_Number="#005489"
Color_Duration="#005489"
Color_Select="#84CEF9"
Color_Bkgnd2="#EAF5FA"
/>
</ttplayer_playlist>

四、下面看一下Visual.xml这个配置文件
这个是用来设置视觉显示的效果,我们先给大家介绍一下千千静听都提供哪几种视觉效果:
1、 频谱分析
2、 梦幻星空
3、 视波显示
4、 专辑封面
5、 不显示视频效果
这5种情况只要在播放器主窗口上面点击鼠标右键即可切换
如图:

下面的配置文件是用来设置各种视觉效果颜色的,大家可以试试看,调出你喜欢的效果来
<ttplayer_visual>
<Visual
SpectrumTopColor="#FFFFFF"
SpectrumBtmColor="#07F7FF"
SpectrumMidColor="#8CDCFF"
SpectrumPeakColor="#FFFFFF"
SpectrumWide="1"
BlurSpeed="3"
Blur="1"
BlurScopeColor="#07F7FF"
TextColor="#FFFFFF"
Font="-11,0,0,0,400,0,0,0,134,3,2,4,49,Tahoma"
/>
</ttplayer_visual>

(C)打包成皮肤文件
好了,以上就是皮肤制作的整个过程啦,把上面的切图和配置文件制作好后,就可以打包成皮肤文件了,可以用WinRAR或WinZIP等压缩工具,以WinRAR为例,先按键盘上的Ctrl+A全选所有文件,然后将全部文件添加到压缩文件夹,压缩文件格式选择"zip",压缩方式可选择"最好",再点击"确定"就行了!
(D)应用皮肤
将这个压缩文件复制到千千安装目录下的Skin文件夹,然后在"千千选项..."-"皮肤"中就可以选择应用皮肤了,或直接在主面板上点击右键-"选择皮肤"即可!

或许您已经了解皮肤的制作方法了,为了更深入的理解,我们增加以下部分的内容帮助您消化:

三、几个重要的属性解释
position:这是众元素中最基本的属性之一,用于定义窗口背景及按钮的位置及大小,参数值格式为 "a, b ,c ,d",这4个数值既固定了元素的位置也确定了其大小,其中(a, b)为左上角的坐标,(c, d)为右下角的坐标,c-a 就是长度,d-b 就是高度,坐标原点要分两种情况:如果是歌词秀、均衡器、播放列表这3个子窗口的position,则是把主窗口的左上角作为它们的坐标原点;如果是各窗口内部按钮的position,则是把对应的各窗口的左上角作为坐标原点,比如歌词秀窗口中的"关闭"按钮就是以歌词秀背景图片的左上角为原点,其它依此类推!

特别地:①播放列表中的scrollbar元素不需要定义position属性,它的位置会自动固定在playlist的最右边;②主窗口中的progress、volume元素及均衡器窗口中的balance、surround、preamp元素的position属性表示的是滑块能够移动的范围的坐标;③播放列表衡器窗口中的playlist元素、歌词秀衡器窗口中的lyric元素的position属性表示的是播放列表和歌词的显示范围,当播放列表窗口和歌词秀窗口改变大小时,这两个元素会自动跟着改变大小,但它们的四个边和窗口的四个边的距离就是通过这个position来体现的;
resize_rect:歌词秀和播放列表窗口特有的属性,用于定义这两个窗口可被拉伸的部分,其参数格式同position,代表的是当改变窗口大小时只有这个矩形框内的部分才会被拉长,在这个范围外的部分则不会变化,另外还有一个属性resize_tile是对应使用的,其参数值可以为0或1,其中0表示在改变窗口大小时采用拉伸的方式,1表示采用平铺的方式,该属性可省略不写,即使用默认值0;

此外,歌词秀和播放列表窗口还有一个可选择的元素:title,可在有特定需要时(比如在改变窗口大小时标题保持居中等)使用,格式如下:

<title position="..." image="..." align="..." />
align:用于定义元素的对齐方式,参数值分两种情况:一种是存在于主窗口中的led、info、stereo、status元素内,此时可以取值为left、center、right,代表这些文字的缩进方式;第二种是存在于歌词秀窗口中的title、close、ontop元素内,播放列表窗口的title、close、toolbar元素内,此时可以取值为left、center、right、top、bottom等,代表当调整窗口大小时元素位置相对于边框移动,如果要同时设置垂直对齐和水平对齐方式,可以用英文加号将二者连在一起,比如"top+left"表示在垂直方向上顶部对齐、在水平方向上左对齐;
vertical:存在于主窗口中的progress、volume元素,参数值可以为true或false,其中取true时指滑块按垂直方向移动,取false时滑块按水平方向移动;
thumb_resize_center:存在于播放列表窗口中的scrollbar元素内,用于定义scrollbar的thumb滑块中间可以进行平铺缩放的部分的大小,如果取值为0,则代表在改变播放列表窗口高度大小时滑块进行不缩放;
thumb_resize_tile:存在于播放列表窗口中的scrollbar元素内,作用与播放列表窗口和歌词秀窗口的resize_tile相同;
hot_image:存在于播放列表窗口中的toolbar元素内,用于定义播放列表工具栏中当鼠标经过时的图片形态。此属性可选择,如省略不写的话程序会自动生成鼠标经过时的按钮状态;
eq_interval:存在于均衡器窗口中的equalizer_window元素内,指eqfactor元素中10个波段的间隔大小(另:eqfactor元素的position属性表示的是10个滑块中第一个滑块的位置,而其它属性对于所有10个滑块都有效);
icon:存在于主窗口中的icon元素内,用于自定义皮肤图标,必须将图标文件(*.ico,16*16)放于皮肤文件夹中并一起打包压缩。此属性可选择,如省略不写的话则使用默认的程序图标;
left_top_color、right_bottom_color:存在于歌词秀窗口中的mini_border元素内,用于定义在迷你模式下歌词秀窗口的左上边框和右下边框的颜色;
迷你窗口:
迷你模式其实是独立于主窗口外的另外一个皮肤,不过在迷你模式下省略了播放列表和均衡器窗口、简化了歌词秀窗口和主窗口。迷你窗口里的所有元素、属性及参数都是和主窗口一样的,它们都被包含于<mini_window>和</mini_window>中,相当于主窗口中的<player_window> </player_window>;
迷你模式就是为了减小屏幕大小占用及简化按钮,故迷你窗口各按钮也要相应调整缩小,并省略部分不常用的按钮,比如音量调节等,一般只保留下"播放/暂停"、"停止"、"后退"、"前进"、"静音"、"图标"、"视觉效果"等即可。另外,迷你模式下的歌词秀窗口的位置和长度是固定的,高度则是和迷你模式的背景图片高度相同。

四、皮肤制作注意事项及技巧:
1.压缩皮肤文件时,不是压缩整个文件夹,而是应该进入文件夹后按Ctrl+A全选所有文件,然后再添加到压缩文件(zip格式),否则皮肤无效;

2.播放列表和歌词秀窗口的position属性定义了这两个窗口初始化时的大小,这个大小可以不是图片的实际大小。这两个窗口在初始化时就会按照resize_rect的规则拉伸窗口至所设置的大小。此外,这两个窗口最大可以拉伸到与屏幕同样大小,但最小只能缩小到与原始图片同样的大小,所以原始图片应该尽量画得小一些,这样可以方便用户把窗口缩成最小,同时还可以稍微减少图片及皮肤大小;
注:这个时候窗口上的按钮的position属性是按图片的实际大小来确定坐标的;

3.bmp图片(尤其是几个面积较大的窗口背景图片)应尽量转换为8位的索引颜色,这样可以极大地减少图片及皮肤的大小,同时在应用皮肤时可以减少内存占用率。
具体的方法为:在Adobe Photoshop中,打开RGB模式的图片,然后点击"图像"-"模式"-"索引颜色",再保存即可!注:如果有透明色时要注意两点:①在填充透明色时,一定不要选"容差";②转换时一定要选中"保留原实际颜色",以防止填充的透明色被改掉。

4.当按钮很小的时候,不要将其透明,而是和背景图片连在一起!因为我们知道,皮肤中透明的部分是不感应鼠标动作的,因此当按钮比较小的时候如果中间有很小的缝隙,鼠标移动到上面时就会乱跳,不便于点击操作!如图所示:

5.在制作皮肤时最好做一部分预览一下效果,这样有问题的地方可以及时修改过来

6.如果不想在主窗口或迷你模式中显示千千静听的图标,可以将图标的position设置为超过窗口大小,比如"500, 500, 516, 516";
7.在主窗口中的led元素(即播放时间)有两种显示方式,一种是已播放的时间,一种是未播放的时间,鼠标点击即可在两种显示方式之间切换。后者比前者多了一个负号,因此在主窗口上应至少给led留出6位的空间,以防止在显示剩余时间时数字覆盖到面板上的其它部分而影响美观;led元素使用的图片必须是12张同样大小的图片排在一起,分别代表0-9十个数字、冒号和减号(可以使用透明色);
8.如果不想显示某个窗口或者各窗口上的某些元素,把相应的元素代码全部删除即可;
9.如果是用记事本打开XML文件的,那存储的时候尽量编码设置成ANSI;如下图所示:

10、关于坐标定位的小技巧:
大家注意一下坐标定义的问题,拿一个20*20的小图为例,它的位置是150,30,170,50,大家来看这个坐标,一定认为没有问题,但实际效果会显示不全,为什么呢,因为坐标的X轴有一个小小的误差问题,要多加2像素才可以哦,正确的定位是150,30,172,50。大家在制作时注意一下。

制作千千皮肤的基本方法就只有这么多,但是技巧远不止这些,大家可以在制作的过程中不断实践摸索,并发挥自己的创造力,设计出各种有创意的皮肤来!

详情请看http://wwwct.ttplayer.com/help.php?t=72

热心网友 时间:2022-04-24 20:11

这几天写了一个皮肤制作的说明,希望能给想自己制作千千静听皮肤的各位朋友一些帮助,也希望大家能够做出更漂亮的皮肤出来,更好地支持千千静听!

概述
千千静听的皮肤是以.skn为扩展名的文件,这些文件存放于安装目录下的skin文件夹下。实际上这些文件都是ZIP格式的压缩文件,把他们的扩展名改为.zip后可以用WinZip或WinRAR等软件解压,解压后所得到的就是皮肤的真实内容。4.0版以后直接用.zip的后缀名就可以了,不必再改成.skn了。
每个皮肤都是很多.bmp格式的图片和一个名为Skin.xml的文件组成,运行千千静听时我们所能看到的皮肤都是由这些图片拼成的,而Skin.xml定义了不同的图片的位置,比如说播放按钮在哪里,暂停按钮在哪里等等。
皮肤中的图片可以通过Photoshop等图像处理软件制作,就这一部分这里不想过多介绍,这里主要介绍的是Skin.xml的写法。
Skin.xml是一个XML格式的文件,可以用Windows自带的记事本打开。打开后可以看到每一行的格式都差不多,实际上这些行一共有三种类型:
1、
2、
3、
在本文中,XXX、YYY这样的项称作元素,AAA、BBB、CCC、DDD这样的项称作属性。每一行都由“”结尾。上面的AAA,BBB都是XXX的属性,是用于修饰XXX的。比如说,播放按钮有一个属性叫position,用于说明播放按钮在窗口上的位置。属性的顺序是不分先后的,属性的值都用双引号引上。
上面所列的第一种和第二种写法是在一起使用的,一般中间都隔了若干行,这样写的意思是这些行都从属于XXX,比如播放按钮从属于主窗口,环绕按钮从属于均衡器等等,而Skin.xml第一行和最后一行分别为和,就是说所有skin元素的所有部分都属于千千静听的Skin。
第三种实际上是一种缩写形式,即 的缩写。含义是说明XXX里不包含任何内容。比如各个按钮,拖动条等,它们已经是最基本的单位,不能再细分了。(关于XML文件的格式,可以参照相关的文档)

千千静听的四个子窗口
仔细分析Skin.xml可以发现其结构如下:









现在一行一行分析:

这一行说明了“skin”是最外层的元素,version,name等属性说明了整个皮肤的一些特征。其中version指明了皮肤版本号,现在的版本号为2,等以后千千静听扩充功能后其界面可能会有所改变(比如增加某个按钮等),到那时皮肤的版本号也会一起增加;后面的name、author、utl、email属性说明了皮肤的名称、本皮肤作者的名字、作者的主页、作者的电子信箱,在切换皮肤时可以看到这些信息;transparent_color是一个很重要的属性,即透明色。定义了透明色之后,皮肤上的这个颜色的部分都会被显示为透明。BMP格式的图片都是矩形的,但有些皮肤上的按钮可以设计成圆形的,就是利用了透明色。把圆形之外的部分的颜色都设成透明色,这样显示出的按钮就是圆型了,同样窗口的图片也可以设计成各种不规则的图案。背景色用颜色的RGB编码表示,比如纯紫色的RGB码为#ff00ff,RGB编码可以在Photoshop里查看。
再向下说明了千千静听的四个子窗口:主窗口(即player_window元素)、均衡器窗口(即equalizer_window元素)、歌词列表窗口(即playlist_window元素)、歌词秀窗口(即lyric_window元素)。其image属性是各个窗口所用的背景图片;position属性是各个子窗口相对于主窗口的位置,position属性的格式是“x1,y1,x2,y2”,其中(x1,y1)为各个子窗口左上角相对于主窗口左上角的坐标,x2-x1,y2-y1为各个子窗口的长度和高度(参见注意3)。当切换到本皮肤时各个窗口就会按照这个位置重新排列窗口,当右击托盘图标-查看窗口-重新排列时各个窗口也会按照这位置排列。playlist_window元素和lyric_window元素都有一个resize_rect属性,属性的格式为“x1,x2,y1,y2”它们所代表的播放列表窗口和歌词秀窗口均可以改变窗口大小,当改变窗口大小时,在水平方向仅仅x1到x2的部分被拉长,垂直方向仅仅y1到y2的部分被拉长,在这些区域以外的部分保持不变(参见注意4)。eq_interval属性定义了均衡器10个分段滑块之间的间隔。playlist_window元素和lyric_window元素还有一个属性是resize_tile,这个属性是4.1版新增加的属性,这个属性可以取值为0或1,如果取值为0,就表示在改变窗口大小时采用拉伸的方式,如果为1表示在改变窗口大小时采用平铺的方式,这个属性也可以不写,如果不写,在拉伸窗口时就用拉伸(即这个属性的默认值为0),这样做是为了更好地兼容4.0以前版的皮肤。(拉伸与平铺的概念可以参考一下windows的桌面墙纸)

窗口内容
上面例子中的省略号里略去的是各个窗口的内容,限于篇幅在这里不一一列出,大家可以解压一个皮肤后自己看一看。各个窗口里的每一个元素的格式都是类似于“
”这样的写法,每个元素所对应的窗口内容见下面几张图片。这里介绍一下各个元素的属性。
position:存在于播放列表窗口的scrollbar外的所有元素内(播放列表窗口的scrollbar 的位置是固定的,位于playlist的最右边,所以不必使用position属性),说明了本元素的位置,与子窗口的position类似。唯一的区别就是子窗口的坐标是相对于主窗口左上角的,而这里的坐标是相对于各个子窗口左上角的。个别元素的position属性需要特别说明:1、主窗口的progress、volume元素和均衡器窗口的balance、surround、preamp元素的position属性表示的是滑块能够移动的范围的坐标;2、均衡器的eqfactor元素的position属性表示的是10个滑块中第一个滑块的位置,而其它属性对于所有10个滑块都有效;3、播放列表的playlist元素、歌词秀的lyric元素的position属性表示显示播放列表和歌词的范围(当播放列表窗口和歌词秀窗口改变大小时,这两个元素会自动跟着改变大小,但它们的四个边和窗口的四个边的距离就是通过这个position来体现的)。
image:指明了本元素所使用的图片。如果元素是一个按钮,那么元素所对应的图片应该是四张同样大小的图片排在一起的,这四张小图片分别代表:鼠标不在按钮上时的图片;鼠标在按钮上时的图片;鼠标按下时的图片;当按钮无效时(比如如果没有选择播放的文件时,播放按钮就是无效的)的图片(对于圆型等非矩形的按钮,也可以使用皮肤指定的透明色,效果和主窗口一样,把不要显示的部分用透明色填空就可以了)。主窗口内led元素使用的图片必须是12张同样大小的图片排在一起,分别代表0-9十个数字、冒号和减号(同样可以使用透明色)。
color,bkgnd,font,font_size:存在于主窗口的info、stereo、status元素内,用于设定文字的颜色、背景色、字体和字号。(如果想显示透明的文字,就不需要指定背景色(bkgnd)了)
align:align的含义有两种,一种是在主窗口的led、info、stereo、status元素内,此时可以取值为left、center、right,代表这些文字的缩进方式;另一种是在歌词秀窗口title、close、ontop元素,播放列表的title、close、toolbar元素内,此时可以取值为left、center、right、top、bottom这些自窗口均可以调整大小,align属性的含义是当调整大小时元素位置相对于那个边框移动,比如如果设置为“bottom+center”,那么当窗口改变大小时该元素始终与下边框保持同样的距离移动并且在水平方向始终在中间。
thumb_image属性:存在于主窗口的progress、volume元素和均衡器窗口的balance、surround、preamp、eqfactor元素内,定义各自的滑块的图片。(这种图片和按钮的一样,可以用使用透明色)
fill_image属性:存在于主窗口的progress、volume元素和均衡器窗口的preamp、eqfactor元素内,定义了移动滑块时填充的图片。
bar_image属性:存在于主窗口的progress、volume元素、均衡器窗口的balance、surround、preamp、eqfactor元素和播放列表窗口的scrollbar元素内,代表这些部分的背景图片。当然,这些背景也可以直接画在窗口里,但是使用bar_image的好处是当改动这些元素的位置时背景可以自动改变位置,而不用在窗口里重画背景。另外,由于播放列表的滚动条在歌曲较少时会自动隐藏,而且该窗口可以改变大小,所以对于播放列表的scrollbar元素,最好不要把背景直接画在窗口里。
vertical属性:存在于主窗口的progress、volume元素内,可以取值为true或false,当取值为true时,滑块按水平方向移动,当取值为false时,滑块按垂直方向移动。
scrollbar的buttons_image、thumb_image和bar_image:当播放列表的歌曲超过窗口高度时,列表右边会出现滚动条,buttons_image、thumb_image和bar_image元素分别定义了滚动条的上下滚动按钮、滑块、滚动条背景的图片。需要注意的是:buttons_image是由6个相同大小的图片组成的,其中3个图片表示向上滚动的按钮,另三个表示向下滚动的按钮。
thumb_resize_center属性:存在于播放列表窗口里的scrollbar元素内,是指scrollbar的thumb滑块中可以进行缩入的中间那个部分的大小,而且缩放是采用平铺的方式,也就是把中间这么大的图片平铺成比原始图片更长的滚动条的滑块。
thumb_resize_tile属性:这两个属性是4.1版新增加的属性,存在于播放列表窗口里的scrollbar元素内,作用与播放列表窗口和歌词秀窗口的resize_tile相同。

迷你模式
迷你模式的窗口实际上就是主窗口的另外一个皮肤,只不过一般情况下需要把这个皮肤做得小一些。迷你窗口的所有参数都和主窗口的一样,主窗口里有的所有内容(比如说播放按钮,暂停按钮等)均可以加入到迷你窗口里。但既然这个窗口叫做“迷你窗口”,那么各个内容的图片就应该尽量做得小一些,而且这个窗口也要做得小一些,以免占用过多的屏幕空间。
迷你窗口的窗口元素是:



把这个元素加入到上面列出的Skin.xml后就可以显示迷你模式了。
中间省略的部分为迷你窗口里的内容。
具有迷你窗口的皮肤在主窗口上最好另加一个按钮,用于切换到迷你模式。这个按钮元素的格式为:

其各个属性与其它按钮都一样。
另外,在迷你窗口也可以加上这个按钮元素,在迷你模式按下这个按钮时会切换到普通模式。(但可以指定一个与主窗口上的不一样的图片,以区分是从普通转到迷你模式还是从迷你转到普通模式)

压缩文件
建立好Skin.xml和各个图片后,把所有的文件压缩成一个ZIP文件,然后拷贝到千千静听的Skin目录内,并把扩展名改为.skn(不改扩展名也可以),就可以转换到新皮肤了。

注意:
1、 BMP图片可以保存为8位位图或24位位图,8位位图做成的皮肤虽然所能表示的颜色较少,但是调用这样的位图时程序所占的内存也较少,所以当皮肤的颜色比较简单时,应尽量把图片保存为8位的位图。(可以使用PhotoShop的模式转换功能,先在RGB模式下准备好图片,再由RGB转成索引模式。如果有透明色时要注意两点:1.在填充透明色时,一定不要选“容差”,2.转换时一定要选中“保留原始颜色”,以防止填充的透明色被改掉。)
2、 一个皮肤只能定义一个透明色,并且定义透明色时应尽量选择与皮肤色调相差较大的颜色,否则很容易使皮肤上的颜色与透明色重复,导致把必要的部分透明了。
3、 关于position属性:该属性的格式为“x1,y1,x2,y2”,其中的y1和y2并不是元素右下角的坐标。因为x2-x1,y2-y1表示元素的长度和高度,所以(x2,y2)应该是元素右下角在右下方的那个点的坐标。就是说元素右下角的坐标应该为(x2-1,y2-1)。
4、 播放列表和歌词秀窗口的position属性定义了这两个窗口初始化时的大小,这个大小可以不是图片的大小。如果这样的话,这两个窗口在初始化时就会按照resize_rect的规则拉伸窗口。另外,这两个窗口最大可以拉伸到与屏幕同样大小,但最小只能缩小到与原始图片同样的大小,所以原始图片应该尽量画得小一些,这样用户在改变窗口大小时能够更加灵活,并且由于图片更小同时也就减少了内存的使用。
5、 当用鼠标在千千静听的播放时间(即主窗口的led元素)上点一下时,这个播放时间就会变成一个负数,代表剩余时间,由于会有少部分歌曲长度大于10分钟,加到一起在主窗口上应该给led至少留出6位的空间,用于表示如-12:32这样的值,否则一旦出现这样的值,那么数字将盖到面板上的其它部分,影响美观。
6、 如果不想在子窗口上显示某些元素,那么可以删去相应的元素。同样,元素的部分属性也可以省略不写。
7、 最后压缩时应该压缩所有文件,而不是压缩这些文件所在的文件夹,否则皮肤无效。

传说还有这个
千千静听皮肤极速合成器 0.7.5.1┊轻松地制作自己的皮肤┊简体中文绿色免费版

http://www.greendown.cn/soft/9563.html

热心网友 时间:2022-04-24 21:46

不想麻烦又想做自己喜欢的皮肤就下载个千千皮肤快速生成器吧

http://yyfearth.com/Down/?act=view&id=5

用法很简单很简单。找张图按照提示一节选~然后就制作出自己的皮肤了。

如果想做的更好就去
http://yyfearth.com/Down/?act=view&id=5
下载皮肤编辑器吧!也很直观的。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
苹果电脑电池充不进电苹果电脑充不进去电是怎么回事 苹果电脑不充电没反应苹果电脑充电指示灯不亮充不了电怎么办 狗狗更加忠诚护家、善解人意,养一只宠物陪伴自己,泰迪能长多大... 描写泰迪狗的外形和特点的句子 国外留学有用吗 花钱出国留学有用吗 !这叫什么号 百万医疗赔付后是否可以续保 前一年理赔过医疗险还能续保吗? 医疗住院险理赔后还能购买吗? 四川有哪些大学可以考研 有没有既能自动更新音乐ID3信息又能添加专辑封面的软件? 有机化学 用笔画出的里面 费歇尔投影式如何转换成楔形式的?不是投影式里面在横线上的表示在纸前吗?比 四川轻化工大学艺术设计类怎么样 百度音乐 oppo摄影师用的什么摄像头 四川高考考生超二本线50分,读什么学校的哪些专业好呢? 百度空间音乐播放器皮肤代码问题 QQ空间怎样给皮肤添加背景音乐 化工类研究生招生院校(四川省的) 风油精为何能擦除记号笔 oppo44个摄像头是都有什么功能 如何修改百度音乐播放器界面字体? 高一有机化学,求学霸解答,在线等解,急!最好笔答,谢谢。 邮政手机银行短扣是什么意思? 怎样添加背景音乐和背景 有机化学 图中铅笔画出的部分 roh中的o是怎么带正电的?麻烦解释一下?还有,roh中的o带正电 oppo摄像头是什么材质 手机版百度音乐为什么没有皮肤? 你好,我今天早上收到一笔邮政银行的未知金额的短信提醒。这是什么意 oppo 手机摄像头是什么型号 西华大学是一本吗 全日制和非全日制有什么区别大学 百度音乐的介绍 西华大学是一所什么样的大学,是几本大学 oppo 手机摄像头是什么型号? 跪求千千音乐5.7版下了皮肤怎么使用 德州学院和四川轻化工大学对于艺术生填本科二批非平行志愿来说哪个比较好考? 百度音乐盒界面今天怎么变黑了? 四川文理学院和四川理工学院那个好一点,//? steam游戏买错了怎么退款 steam游戏购买之后怎么安装 steam游戏买重复了怎么办 steam游戏已经买了标准版,玩了一段时间又买黄金版,会怎么样 怎么可以把steam游戏恢复到刚刚购买的状态 熟女别墅第三天司机为什么不见了 淑女都市亚兹敏钥匙在哪 “小家碧玉”和“大家闺秀”都是指女孩,是不是一个穷,一个富? 《诗经》有云“窈窕淑女,君子好逑”,你认为当今社会还适用吗?为什么? 洋房好还是别墅好,洋房和别墅的区别都有哪些?