Android上自定義進度條的教學講解
這次主要跟大家說說,如何實現android forum中文討論區一個自定義的進度條。希望可以通過本次實現,讓大家了解一下,如何在Android上實現自定義控件的。在講解之前,先說說在A ndroid上實現自定義控件的大概方android教學法。概括如下:
1android台灣中文網、 自定義的單個控件
分別是重新繼承View或者其子類和SurfaceView或者其子類。如果是一般的應用程序開始,繼承View或者其子類就可以了,我們需要做的,就是重寫onDraw(canver)。SuerfaceView主要用于幀數要求比較高的應用,如“視頻播放”和遊戲開發,尤其是3D遊戲開發,這�堣ㄧ埴荓�android軟體論壇述,以後說到關于遊戲開發,我會專以一個帖子講解的。
2、 自定義的組合控件
組合的控件,因名思議,就是把幾個控件組合在一起,組合成一個更大的控件。一般是繼承一個Layout,如ReleativeLayout、LinearLayout、TableLayout等等,視具體情況而定。當然,裝在Layout�埵茪l控件,可以是系統自帶的,也可以通過第一方式自定義的控件。
這樣,只要大家發揮想象,通過上面兩種方法,就可以組合出千變萬化的控件了,一句話“沒有做不到,只有想不到”。
二、要求:
要求進度條能從左到右減少。系統自帶的進度條,好像沒有方向可以設置的(有知道如何設置童鞋,希望說一下,謝謝~)。
三、技術點和難點
主要的技術點:Android的Handle機制,ReleativeLayout的相對布局。
主要的難點:在Android上,是不可以動態修改view的layout_width和layout_height的,因此要動態修改進度條的長度,需要不斷“刪除—增加”ImageView的方式來實現,而每次add進parent的ImageView的layout_width需要根據當前parent的width、max_value、current_progress三者計算出來,長度 = parent_width * (current_progress/max_value);另外還有一點,非常重要的,就是每android論壇次更換ImageView時,都必須交生成一個線程,post給handle來做,這�堣~不會造成界面阻塞,這一點很重要,不然界面要卡死的!!
四、代碼
本帖隱藏的內容需要回複才可以浏覽
|