Re: [問題] 透明底圖的效能如何改善?
※ 引述《singz (Run Away~)》之銘言:
: 我現在要做個windows form的ui程式
: 有個圖片要有來做底圖,上面許多的ui components
: 由於要做透明的效果(空白的地方使用底圖圖片的顏色)
: 所以這些label , button , radio button...etc都得設transparent
: 可是components愈多的話,在執行的時候show出畫面時,
: 很明顯效能會變很差,componets是一個接著一個顯示出來..感覺就是跑很慢
: SetStyle doublebuffer 可以解決閃爍的問題,可是對這個問題沒有幫助
: 請問有人知道要怎麼改善嗎?
: 感謝
高效能的原理就是"千萬""千萬"不要呼叫任何refresh(), update()...
底層是你的UI的snapshot,也就是全部壓成一張圖(多線程分段載入效果好!).
上面疊一層Layer, 完全透明(設transparent key)
用來收使用者的事件e.g., click,keypress...
再去做對應的回饋效果e.g.,按下去有光暈效果.
回饋效果做法_func(){
runtime產生一張畫布,bitmap大小是你要做出效果的區域e.g.,按鈕A的範圍.
這邊說區域的意思是,可包含數個按鈕.
當收到click事件, 將光暈的圖, 用createGraphics()方法畫到bitmap裡面.
同樣的將所有要更新畫面的圖都畫到bitmap裡面.
然後將bitmap畫到底層,
最後記得要dispose那張bitmap, 才不會有memory leak喔~ 咪啾
}
//希望對你有幫助
---
引用某人的話: 你只要xxx的從左邊拉一個UI過來就是失敗!
我不認同,因為開發過程將UI對齊之後紀錄座標是很重要的.
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.114.78.140
推
04/10 00:22, , 1F
04/10 00:22, 1F
推
04/10 19:17, , 2F
04/10 19:17, 2F
→
04/10 23:26, , 3F
04/10 23:26, 3F
討論串 (同標題文章)