duilib進階教程 -- 總結 (17)

  整個教程的代碼下載:http://download.csdn.net/detail/qq316293804/6502207 html

  (因爲duilib進階教程主要介紹界面,因此這個教程只給出界面相關的代碼,完整代碼請進《仿迅雷播放器教程windows

進階教程彙總:ide

duilib進階教程 -- 在MFC中使用duilib (1)

  duilib的學習到此就差很少啦,如今簡短總結下:學習

1、穩定性:ui

  目前已發現並解決了四五個bug,不過都屬於一會兒就能解決的bug,而且都是功能性方面的bug,並不會致使崩潰,已有不少公司用於產品開發,通過了長期的考驗,所以穩定性方面已經很不錯了。spa

2、功能性:.net

  Alberl在作這個播放器的時候,也不敢肯定能不能徹底實現迅雷那樣的效果,如今看來,徹底不是問題!orm

3、易用性:htm

  看到Alberl這麼快就作出了迅雷播放器,還用懷疑易用性麼?blog

4、學習難度:

  Alberl既不是作播放器的,也不是作界面的,只是業餘愛好而已,還能一邊學習一邊寫教程,而且在Alberl寫了這些教程以後,入門已經沒有難點啦,你以爲duilib能有多難學?

5、不方便的地方:

  由於是模仿迅雷播放器,因此這裏和迅雷BOLT作一點點對比。

  圖片資源都是從迅雷提取出來的,

  duilib有如下幾點不便:

  1Alberl作的最多的工做就是去計算source屬性該填哪些值,由於一個按鈕一般有四種狀態的圖標,而不少按鈕的大小都不同,因此這裏對每一個按鈕都要計算其source屬性,很不方便。

  這裏有一個簡單的解決方案,加上屬性 splitimage="true"則說明此圖片須要被分紅四個部分顯示。規定圖片的四個部分依次按normalimagehotimagepushedimagefocusimage排列,程序就自動計算每一個圖片的位置,就無需在XML填寫source位置啦~

  並且以後就算按鈕大小變了,或者圖片大小變了,都不須要改動XML

  2、其次就是圖片默認被拉伸了,很顯然,絕大部分圖片是不須要被拉伸的,有些按鈕的大小和圖片的大小並不同,雖然dest屬性能夠解決這個問題,可是也很不方便,因此默認不該該被拉伸,而且圖片垂直水平都居中,若是想要拉伸,則指定scaleimage="true"。 這就方便多啦。

  3Slider控件的圖片問題,進度條圖片被放大到和整個控件的高度同樣,這時的解決方案是,好比控件高度爲20,圖片高度爲3,則須要把圖片調成高度爲20,其餘17個高度都作成透明。若是控件高度調成40,那麼圖片又要調整。  因此能夠加一個屬性imageheight="3",這樣Slider控件自動將圖片垂直居中,或者無需指定imageheight屬性,代碼自動判斷高度。

  4、部分屬性不全,好比編輯框有FocusBordColor,卻沒有HotBordColor,這樣要實現迅雷那樣的編輯框,只能指定一個HotImage屬性,顯然也不方便。還有不少Color屬性都不全,就不一一指出了。

  5、按鈕狀態切換時,只能指定一個圖片,迅雷每一個按鈕除了切換hotimage之外,按鈕的下面還有一個藍色的光影,顯然這個光影是能夠重用的,說明迅雷的按鈕切換時至少能夠切換兩張圖片。而且那個光影能夠顯示在按鈕外面,能夠看到光影的寬度明顯比按鈕寬,甚至延長到了旁邊的按鈕下面。 這個改動可能涉及到核心,所以不建議去改,改一下圖片就能夠了。

  不過以上幾點都是很容易實現的,所以實際項目使用中,能夠花幾天時間把以上幾點實現了,後面開發就更方便啦~

  固然,這只是開發迅雷播放器中遇到的問題,開發其餘項目可能會遇到其餘問題。

  因爲Alberl只是業餘人士,就不作這些改進了。

  從實現效果來看,迅雷BOLT顯然更成熟,更全面。但因爲迅雷BOLT並不開源,而duilib也已經夠用了,雖然提了這幾點不便,但都是很容易解決的,也就說duilib已經很是方便了。

 

  能夠看到Alberl作的播放器和迅雷看看的類似度達到95%以上,再往細節裏作一下就能夠以假亂真啦~O(_)O~

  Alberl在最開始也說了,選擇從這個庫開始研究,最主要的緣由是由於不少大公司都用了它,因此Alberl在不知道哪一個庫好用的狀況下,就跟着大牛走啦~O(_)O~

相信在看了Alberl的教程以及做品以後,對duilib應該心中有數了吧。

最後,祝小夥伴們學習愉快~O(_)O~



相關文章
相關標籤/搜索