談談自定義Android界面切換效果庫的使用

界面或者板塊的切換是Android應用中非常常見的一個功能,本文將給大家介紹一個由本人開發的好用的Android界面切換效果庫,同時也談談自己對“Android模塊化編程”的一些想法。希望大家能通過對界面切換效果庫的研究和思考,總結出一套自己的常用功能類庫的開發思路。界面切換效果庫Demo項目的源碼(ShiftEffect.zip)。將解壓後的項目源碼(ShiftEffect)導入到Eclipse中就可以看到這個Demo項目的代碼結構了。 


我們可以看到,該界面切換效果庫的使用方法是非常方便和靈活的。使用EffectUtil的fillTexts(或fillImages)方法添加需要進行切換的文字(或圖片)之後,再調用其EffectView對象的start方法就可以打開切換效果了。此外,我們還可以使用setDuration方法設置切換過程的漸變時間、使用setInterval設置切換過程的漸變間隔、使用setAnimation方法設置切換過程的漸變效果;這些方法的使用在使用範例中都能查到。

接下來,讓我們來思考一個問題:如果拋開以上的Android界面切換效果庫,使用原生API來實現一個類似的效果,我們該如何來做?你是否會感覺非常繁瑣?確實如此。其實,這也就是爲何我們提倡“模塊化編程”的原因!實際上業內已經有很多的開發團隊早已意識到了這一點,也就是所謂的“Android模塊化編程”。那麼,何謂“Android模塊化編程”呢?簡單來說,就是把常見的、可複用的功能提取出來,單獨製作成好用的類庫,使之在開發產品的時候可被複用。

實際上,任何一門技術發展到一定階段,必然會出現模塊化的方法和思想,對於Android編程來說也是如此。模塊化編程可以幫助知識積累、技術沉澱,幫助我們製作出更加豐富和複雜的應用。因此,我建議大家在學習Android變成的過程中,多使用模塊化的思想來實現,比如上述的“自定義Android界面切換效果庫”,就是個很好的例子。我們可以來看看以上界面切換效果庫源碼結構,如下圖。


從源碼的結構中,我們可以看出,效果庫的代碼層次十分清晰。EffectUtil是總接口類,裏面包含了fillTexts和fillImages兩個方法,用於初始化界面切換的內容(文字or圖片);相關的視圖類都在com.app.plugs.effect.view包下,這些視圖都是用於容納切換內容的容器;而動畫效果類則位於com.app.plugs.effect.anim包下,這裏包含了所有動畫效果的邏輯。具體源碼大家可以直接反編譯Demo項目的源碼plugs-effect.jar來看,此包是未進加密的。

當然,在模塊化編程實現的過程中,必定會遇到很多需要解決的問題。比如下面就是個最常見的問題,模塊相關的資源文件如何打包?實際上在模塊化編程的過程中,我們不提倡對資源進行打包。大家更應該使用Android原生的控件API來實現模塊的UI,而不是XML模板(使用XML模板有可能降低Android應用的運行效率,請參考《Android和PHP開發最佳實踐》第10章.客戶端優化);而圖片資源這些則可以通過模塊的API進行設置;總之,原則是模塊化的類庫中應該只包含代碼。當然,大家在實施過程中遇到任何問題,都歡迎到這裏來留言和討論。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章