在前面兩篇日志已經能使用xml了。今天准備好好的折騰一番,結果在顏色上卻掉坑里了。
起初我在ps里取顏色為0104ff
這里01為R,04為G,ff為B
在控件的屬性里有這樣一個屬性bkcolor="#0104ff"。這個代碼放進去后為黑色,並非我們期望的藍色。
后來才發現在duilib里顏色正常的是8位,ps里的是6位。另外兩位為A,是代表透明度的。在duilib中顏色的表達順序為:
ARGB
透明度|紅色|綠色|藍色
大家知道藍色加點紅色就會變成粉紅色,所以我這里采用藍色的背景,如果透明色生效,那么紅色控件半透明就會變成粉紅色。純紅的RGB代碼為#ff0000,ff為最大值,所以不透明的ARGB代碼為#ff ff 00 00
XML代碼如下:
<?xml version="1.0" encoding="utf-8"?> <Window mininfo="400,360" size="480,320"> <Font name="黑體" size="16" default="true" /> <VerticalLayout bkcolor="#ff0104ff"> <Button name="closebutton" height="20" bkcolor="#88ff0000" text="這是透明的" maxwidth="120" /> <Button name="closebutton" height="20" bkcolor="#ffff0000" text="這是不透明的" maxwidth="120" /> </VerticalLayout> </Window>
運行后效果如下圖:
上圖看着不太明顯,不想再改上面的配圖和文字了,另外換了個對比強烈的顏色代碼如下:
<?xml version="1.0" encoding="utf-8"?> <Window mininfo="400,360" size="480,320"> <Font name="黑體" size="16" default="true" /> <VerticalLayout bkcolor="#ffab7958"> <Button name="closebutton" height="20" bkcolor="#88e47621" text="這是透明的" maxwidth="120" /> <Button name="closebutton" height="20" bkcolor="#ffe47621" text="這是不透明的" maxwidth="120" /> </VerticalLayout> </Window>
運行效果如下圖:
另外我還寫了一個效果明顯的,懶得上代碼了,效果如下:
最后要補充一句,這個透明針對主窗口透明沒有用,但是寫顏色的時候一定要補齊前面兩位,不然會錯誤的解析顏色