软件易容术-----换肤
电子科技大学03级02班 周银辉
1, 看看成果:
换肤前
换肤后
(说明: 这里仅仅借用的是"千千静听"中皮肤包中的图片, 本示例程序中的皮肤包文件格式以及换肤方案均为作者原创)
2 如何实现:
2.1 皮肤配置文件:
在研究如何实现换肤之前,应该仔细看看以下XML文件,它是皮肤配置文件,由它来组织皮肤包中的图片并告诉软件如何来绘制皮肤:
皮肤配置文件(点击加号展开)
<?xml version="1.0" encoding="utf-8"?>
<PlayerSkin xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<MainWindow>
<Image>player_skin.bmp</Image>
<Icon>
<Position>
<Left>1</Left>
<Top>1</Top>
<Right>17</Right>
<Bottom>17</Bottom>
</Position>
<IconImage>icon.ico</IconImage>
</Icon>
<Play>
<Position>
<Left>164</Left>
<Top>39</Top>
<Right>183</Right>
<Bottom>58</Bottom>
</Position>
<Iamge>play.bmp</Iamge>
</Play>
<Pause>
<Position>
<Left>164</Left>
<Top>39</Top>
<Right>183</Right>
<Bottom>58</Bottom>
</Position>
<Iamge>pause.bmp</Iamge>
</Pause>
<Stop>
<Position>
<Left>145</Left>
<Top>39</Top>
<Right>164</Right>
<Bottom>58</Bottom>
</Position>
<Iamge>stop.bmp</Iamge>
</Stop>
<Next>
<Position>
<Left>202</Left>
<Top>39</Top>
<Right>221</Right>
<Bottom>58</Bottom>
</Position>
<Iamge>next.bmp</Iamge>
</Next>
<Previous>
<Position>
<Left>183</Left>
<Top>39</Top>
<Right>202</Right>
<Bottom>58</Bottom>
</Position>
<Iamge>prev.bmp</Iamge>
</Previous>
<Mute>
<Position>
<Left>249</Left>
<Top>39</Top>
<Right>268</Right>
<Bottom>58</Bottom>
</Position>
<Iamge>mute.bmp</Iamge>
</Mute>
<Open>
<Position>
<Left>221</Left>
<Top>39</Top>
<Right>240</Right>
<Bottom>58</Bottom>
</Position>
<Iamge>open.bmp</Iamge>
</Open>
<Eq>
<Position>
<Left>152</Left>
<Top>92</Top>
<Right>188</Right>
<Bottom>114</Bottom>
</Position>
<Iamge>equalizer.bmp</Iamge>
</Eq>
<PalyList>
<Position>
<Left>188</Left>
<Top>92</Top>
<Right>224</Right>
<Bottom>114</Bottom>
</Position>
<Iamge>playlist.bmp</Iamge>
</PalyList>
<Lyric>
<Position>
<Left>224</Left>
<Top>92</Top>
<Right>260</Right>
<Bottom>114</Bottom>
</Position>
<Iamge>lyric.bmp</Iamge>
</Lyric>
<Visual>
<Position>
<Left>18</Left>
<Top>24</Top>
<Right>124</Right>
<Bottom>84</Bottom>
</Position>
</Visual>
<MiniMize>
<Position>
<Left>240</Left>
<Top>3</Top>
<Right>247</Right>
<Bottom>10</Bottom>
</Position>
<Iamge>minimize.bmp</Iamge>
</MiniMize>
<MiniMode>
<Position>
<Left>253</Left>
<Top>3</Top>
<Right>260</Right>
<Bottom>10</Bottom>
</Position>
<Iamge>minimode.bmp</Iamge>
</MiniMode>
<Exit>
<Position>
<Left>266</Left>
<Top>3</Top>
<Right>273</Right>
<Bottom>10</Bottom>
</Position>
<Iamge>close.bmp</Iamge>
</Exit>
<Progress>
<Position>
<Left>145</Left>
<Top>77</Top>
<Right>267</Right>
<Bottom>90</Bottom>
</Position>
<BarImage></BarImage>
<ThumbImage>progress_thumb.bmp</ThumbImage>
<FillImage>progress_fill.bmp</FillImage>
</Progress>
<Volume>
<Position>
<Left>274</Left>
<Top>20</Top>
<Right>283</Right>
<Bottom>84</Bottom>
</Position>
<BarImage></BarImage>
<ThumbImage></ThumbImage>
<FillImage>volume_fill.bmp</FillImage>
<Vertical>true</Vertical>
</Volume>
<Info>
<Position>
<Left>147</Left>
<Top>20</Top>
<Right>268</Right>
<Bottom>31</Bottom>
</Position>
<Color>#ff9933</Color>
<Font>simsong</Font>
<FontSize>9</FontSize>
<Align>MiddleLeft</Align>
</Info>
<Led>
<Position>
<Left>175</Left>
<Top>63</Top>
<Right>235</Right>
<Bottom>74</Bottom>
</Position>
<Iamge>number.bmp</Iamge>
<Align>MiddleRight</Align>
</Led>
<Stereo>
<Position>
<Left>13</Left>
<Top>98</Top>
<Right>55</Right>
<Bottom>109</Bottom>
</Position>
<Color>#ff9933</Color>
<Font>simsong</Font>
<FontSize>9</FontSize>
<?xml version="1.0" encoding="utf-8"?>
<PlayerSkin xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<MainWindow>
<Image>player_skin.bmp</Image>
<Icon>
<Position>
<Left>1</Left>
<Top>1</Top>
<Right>17</Right>
<Bottom>17</Bottom>
</Position>
<IconImage>icon.ico</IconImage>
</Icon>
<Play>
<Position>
<Left>164</Left>
<Top>39</Top>
<Right>183</Right>
<Bottom>58</Bottom>
</Position>
<Iamge>play.bmp</Iamge>
</Play>
<Pause>
<Position>
<Left>164</Left>
<Top>39</Top>
<Right>183</Right>
<Bottom>58</Bottom>
</Position>
<Iamge>pause.bmp</Iamge>
</Pause>
<Stop>
<Position>
<Left>145</Left>
<Top>39</Top>
<Right>164</Right>
<Bottom>58</Bottom>
</Position>
<Iamge>stop.bmp</Iamge>
</Stop>
<Next>
<Position>
<Left>202</Left>
<Top>39</Top>
<Right>221</Right>
<Bottom>58</Bottom>
</Position>
<Iamge>next.bmp</Iamge>
</Next>
<Previous>
<Position>
<Left>183</Left>
<Top>39</Top>
<Right>202</Right>
<Bottom>58</Bottom>
</Position>
<Iamge>prev.bmp</Iamge>
</Previous>
<Mute>
<Position>
<Left>249</Left>
<Top>39</Top>
<Right>268</Right>
<Bottom>58</Bottom>
</Position>
<Iamge>mute.bmp</Iamge>
</Mute>
<Open>
<Position>
<Left>221</Left>
<Top>39</Top>
<Right>240</Right>
<Bottom>58</Bottom>
</Position>
<Iamge>open.bmp</Iamge>
</Open>
<Eq>
<Position>
<Left>152</Left>
<Top>92</Top>
<Right>188</Right>
<Bottom>114</Bottom>
</Position>
<Iamge>equalizer.bmp</Iamge>
</Eq>
<PalyList>
<Position>
<Left>188</Left>
<Top>92</Top>
<Right>224</Right>
<Bottom>114</Bottom>
</Position>
<Iamge>playlist.bmp</Iamge>
</PalyList>
<Lyric>
<Position>
<Left>224</Left>
<Top>92</Top>
<Right>260</Right>
<Bottom>114</Bottom>
</Position>
<Iamge>lyric.bmp</Iamge>
</Lyric>
<Visual>
<Position>
<Left>18</Left>
<Top>24</Top>
<Right>124</Right>
<Bottom>84</Bottom>
</Position>
</Visual>
<MiniMize>
<Position>
<Left>240</Left>
<Top>3</Top>
<Right>247</Right>
<Bottom>10</Bottom>
</Position>
<Iamge>minimize.bmp</Iamge>
</MiniMize>
<MiniMode>
<Position>
<Left>253</Left>
<Top>3</Top>
<Right>260</Right>
<Bottom>10</Bottom>
</Position>
<Iamge>minimode.bmp</Iamge>
</MiniMode>
<Exit>
<Position>
<Left>266</Left>
<Top>3</Top>
<Right>273</Right>
<Bottom>10</Bottom>
</Position>
<Iamge>close.bmp</Iamge>
</Exit>
<Progress>
<Position>
<Left>145</Left>
<Top>77</Top>
<Right>267</Right>
<Bottom>90</Bottom>
</Position>
<BarImage></BarImage>
<ThumbImage>progress_thumb.bmp</ThumbImage>
<FillImage>progress_fill.bmp</FillImage>
</Progress>
<Volume>
<Position>
<Left>274</Left>
<Top>20</Top>
<Right>283</Right>
<Bottom>84</Bottom>
</Position>
<BarImage></BarImage>
<ThumbImage></ThumbImage>
<FillImage>volume_fill.bmp</FillImage>
<Vertical>true</Vertical>
</Volume>
<Info>
<Position>
<Left>147</Left>
<Top>20</Top>
<Right>268</Right>
<Bottom>31</Bottom>
</Position>
<Color>#ff9933</Color>
<Font>simsong</Font>
<FontSize>9</FontSize>
<Align>MiddleLeft</Align>
</Info>
<Led>
<Position>
<Left>175</Left>
<Top>63</Top>
<Right>235</Right>
<Bottom>74</Bottom>
</Position>
<Iamge>number.bmp</Iamge>
<Align>MiddleRight</Align>
</Led>
<Stereo>
<Position>
<Left>13</Left>
<Top>98</Top>
<Right>55</Right>
<Bottom>109</Bottom>
</Position>
<Color>#ff9933</Color>
<Font>simsong</Font>
<FontSize>9</FontSize>