標籤:
Hack 1.善用weightSum和layout_weight。
問題提出:嘗試做一個button的寬度是父View的一半的效果。
關鍵詞:weightSum = 1 , layout_weight=0.5
Hack 2.常用include和ViewStub
問題提出:如何減少複雜介面的繪製時間。
關鍵詞:include複用,外部定義layout_width,layout_height;ViewStub佔位,VISIBLE設定
Hack 3.自訂ViewGroup
問題提出:如何使用自訂ViewGroup,如何計運算元View的位置和大小
關鍵詞:自訂View,attrs使用
Hack 4.使用Preference
Android提供了一個PreferenceActivity和preferenceFragment等類來簡化了Preference的實現,既然如此,簡單的Preference可以使用它們實現,還可以通過繼承一些Preference下屬類,比如DialogPreference來實現更加靈活的配置
關鍵詞:Preference,自訂Preference
Hack 5.使用TextSwitcher/ImageSwitcher
問題提出:如何快速為多文本切換添加動畫效果?(同理Image切換)
關鍵詞:Switcher
Hack 6.為ViewGroup下屬的子View添加統一順序執行的動畫效果
問題提出:為某個擁有多個(相似)子View的ViewGroup的子View添加動畫效果
關鍵詞:LayoutAnimationController,ListView等
Hack 7.canvas繪圖
自訂View的另一種重要部分,使用Canvas在螢幕上繪製圖形或是映像,自訂動作等
關鍵詞:Canvas
Hack 8.創作Ken Burns效果
問題提出:如何建立類似投影片切換的效果
關鍵詞:AnimatorSet,ObjectAnimator
Hack 9.不用EditText來輸入要被檢驗的Data
問題提出:要驗證一個使用者輸入的時間格式比較麻煩,用Button檢測輸入行不行?
關鍵詞:為控制項自訂background
Hack 10.格式化TextView的文本顯示
問題提出:如何?在TextView下顯示簡單的HTML文法,或是為部分文本加入前景色彩或是背景色
關鍵詞:SpannableString,BackgroundColorSpan,ForegroundColorSpan
Hack 11.製造發光文字
問題提出:
關鍵詞:Typeface,assets/fonts,XML(shadowColor,shadowRadius,shadowDx,shadowDy)
樣本:
public class LedTextView extends TextView { public LedTextView(Context context, AttributeSet attrs) { super(context, attrs); AssetManager assets = context.getAssets(); final Typeface font = Typeface.createFromAsset(assets,"fonts/digital-7.ttf"); setTypeface(font); }}
Hack 12.圓角背景
使用drawable不僅能用png圖片(特別是現在ic_launcher是mipmaps下的),還能使用xml自訂一些圖形和狀態顯示,比如press,select
關鍵詞:drawable,xml( shape corners),ShapeDrawables
Hack 13.在onCreate中擷取View的寬和高
問題提出:在onCreate調用完成之前,layout方法不會被調用,因此在onCreate是無法擷取View的寬和高的
關鍵詞,view.post,runable,getWidth,getHeight
Hack 16.設定Toast位置
關鍵詞:延遲show,設定gravity
Hack.18.使用ProGuard移除Log代碼
關鍵詞:AndroidStudio內建使用了ProGuard
Hack 20.使用Model-View-Presenter模式
關鍵詞:MVP
Hack 21.SyncAdapter的使用
關鍵詞:Service,Provider,SyncAdapter
Hack 27.通過Delegate在Activity和Adapter上同步設定
關鍵詞:第三方Delegate,Adapter,View
hack 41 .ORMLite資料庫
關鍵詞:ORM資料庫在複雜情況下替代SQLite
Hack 43綁定一系列的資料庫操作
關鍵詞:applyBatch,加速大範圍頻繁database操作
50 Android Hacks閱讀筆記