Duilib技巧:背景圖片平鋪


貼圖的描述

 

方式有兩種
    // 1
aaa.jpg
    // 2
file='aaa.jpg' res='' restype='0' dest='0,0,0,0' source='0,0,0,0' corner='0,0,0,0' 
    // mask='#FF0000' fade='255' hole='false' xtiled='false' ytiled='false'

第一種是最簡單的,加載圖片文件並將整張圖片拉伸鋪滿整個控件


第二種既支持從文件中加載圖片,也可以從資源中加載
1
、如果是從文件加載,設置file屬性,如file='XXX.png',不要寫resrestype屬性
2
、如果從資源加載,設置resrestype屬性,不要設置file屬性
3
dest屬性的作用是指定圖片繪制在控件的一部分上面(繪制目標位置)
4
source屬性的作用是指定使用圖片的一部分
5
corner屬性是指圖片安裝scale9方式繪制(scale9含義往下邊看)
6
mask屬性是給不支持alpha通道的圖片格式(如bmp)指定透明色
7
fade屬性是設置圖片繪制的透明度
8
hole屬性是指定scale9繪制時要不要繪制中間部分(有些地方對提升性能比較有用)
9
xtiled屬性設置成true就是指定圖片在x軸不要拉伸而是平鋪,ytiled屬性設置成true就是指定圖片在y軸不要拉伸而是平鋪

讓背景圖片平鋪要寫:xtiled='true' ytiled='true'

這個UI設計器是不識別的.

 

 

========================================================

Scale9的含義

它是使用網格將圖像划分為9個區域,如圖2所示,我用數字1-9標出了對應的區域,其中標紅色的區域是不需要縮放的,而標藍色的區域則是需要縮放的區域。


2 對圖片使用Scale9技術進行縮放


當這張圖片被放大,依據Scale9的定義,區域1379需要保持原有的尺寸(通過對比左側和右側的圖像可以發現這一點),而其它區域則需要依據一定的規則改變自己的尺寸:
區域2,當圖片放大,本區域寬度增加,高度保持不變 
區域4,當圖片放大,本區域高度增加,寬度保持不變 
區域5,當圖片放大,本區域寬度和高度都增加 
區域6,當圖片放大,本區域高度增加,寬度保持不變(規則與區域4一致) 
區域8,當圖片放大,本區域寬度增加,高度保持不變(規則與區域2一致) 


對於區域5,我們在做外觀設計的時候要重點注意,這個區域不要放置復雜圖形,對於單色或簡單漸變色而言,一定程度的放大是可以接受的,但如果是復雜圖形,那么放大所產生的失真是非常明顯的(當然如果是矢量圖形,就不會有這個問題,但矢量圖形對於CPU有較大的計算消耗,通常在性能敏感型的Flex應用中我們盡量使用位圖皮膚)。

 

 

==================================================================

Scale9duilib中的實例應用

以控件Combo為例,原本皮膚如圖:,寬度是71,現在設置一個長200Combo控件效果如圖:

可以看到明顯被拉伸了,添加corner屬性代碼如下:

 

<Combo name="ComboClientDirSelect" text="TCP" height="20" width="200" itemshowhtml="true" itemtextcolor="#FF000000" itemselectedtextcolor="#FF000000" itemselectedbkcolor="#FFC1E3FF" itemhottextcolor="#FF000000" itemhotbkcolor="#FFE9F5FF" itemdisabledtextcolor="#FFCCCCCC" itemdisabledbkcolor="#FFFFFFFF" normalimage="file='Combo_nor.png' corner='5,2,30,2'" hotimage="file='Combo_over.png' corner='5,2,30,2'" pushedimage="file='Combo_over.png' corner='5,2,30,2'" dropboxsize="0,150">

 

此時效果如圖:

,

顯示正常了,

其中corner='5,2,30,2'的含義是#字的4條線分別到下的距離然后把#中間的圖片進行拉伸最后達到完美效果.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM