【轉】Android開發中讓你省時省力的方法、類、接口

http://www.toutiao.com/i6362292864885457410/?tt_from=mobile_qq&utm_campaign=client_share&app=news_article&utm_source=mobile_qq&iid=6611409663&utm_medium=toutiao_androidjava

  1. getParent().requestDisallowInterceptTouchEvent(true);
    • 解釋:一次點擊事件是從父view傳遞到子view中,每一層的view能夠決定是否攔截並處理點擊事件或者傳遞到下一層,若是子view不處理點擊事件,則該事件會傳遞會父view,由父view去決定是否處理該點擊事件。在子view能夠經過設置此方法去告訴父view不要攔截並處理點擊事件,父view應該接受這個請求直到這次點擊事件結束。
  2. ArgbEvaluator.evaluate(float fraction, Object startValue, Object endValue);
    • 解釋:用於根據一個起始顏色值和一個結束顏色值以及一個偏移量生成一個新的顏色,分分鐘實現相似於微信底部欄滑動顏色漸變。
  3. Bitmap.extractAlpha ();
    • 解釋:返回一個新的Bitmap,capture原始圖片的alpha 值。有的時候咱們須要動態的修改一個元素的背景圖片又不但願使用多張圖片的時候,經過這個方法,結合Canvas 和Paint 能夠動態的修改一個純色Bitmap的顏色。
  4. HandlerThread
    • 代替不停new Thread 開子線程的重複體力寫法。
  5. IntentService
    • 一個能夠幹完活後本身去死且不須要咱們去管理子線程的Service。
  6. Palette
    • 5.0加入的能夠提取一個Bitmap 中突出顏色的類,結合上面的Bitmap.extractAlpha。
  7. Executors. newSingleThreadExecutor();
    • 這個是java 的,以前不知道它,本身花很大功夫去研究了單線程順序執行的任務隊列。。
  8. ViewDragHelper
    • 自定義一個子View可拖拽的ViewGroup 時,處理各類事件。
  9. GradientDrawabl
    • 用在於定於各類樣式的漸變。
  10. AsyncQueryHandler
    • 若是作系統工具類的開發,好比聯繫人短信輔助工具等,確定免不了和ContentProvider打交道,若是數據量不是很大的狀況下,隨便搞,若是數據量大的狀況下,瞭解下這個類是頗有必要的。
  11. ViewFlipper
    • 實現多個view的切換(循環),可自定義動畫效果,且可針對單個切換指定動畫。
  12. View.setLayerType(View.LAYER_TYPE_SOFTWARE, null)
    • 解釋:有朋友提到了在自定義View時有些方法在開啓硬件加速的時候沒有效果的問題,在API16以後確實有不少方法不支持硬件加速,一般咱們關閉硬件加速都是在清單文件中經過,其實android也提供了針對特定View關閉硬件加速的方法,調用該方法便可。
  13. Pair
    • android util包中的Pair類,能夠方便的用來存儲一」組」數據。注意不是key value。
  14. PointF
    • graphics包中的一個類,咱們常常見到在處理Touch事件的時候分別定義一個downX,一個downY用來存儲一個座標,若是座標少還好,若是要記錄的座標過多那代碼就很差看了。用PointF(float x, float y);來描述一個座標點會清楚不少。
  15. StateListDrawable
    • 定義Selector一般的辦法都是xml文件,可是有的時候咱們的圖片資源多是從服務器動態獲取的,好比不少app所謂的皮膚,這種時候就只能通StateListDrawable來完成了,各類addState便可。
  16. android:descendantFocusability
    • ListView的item中CheckBox等元素搶焦點致使item點擊事件沒法響應時,除了給對應的元素設置 focusable,更簡單的是在item根佈局加上android:descendantFocusability=」blocksDescendants」 android:duplicateParentState=」true」,讓子View跟隨其Parent的狀態,如pressed等。常見的使用場景是某些時候一個按鈕很小,咱們想要擴大其點擊區域的時候一般會再給其包裹一層佈局,將點擊事件寫到Parent上,這時候若是但願被包裹按鈕的點擊效果對應的Selector繼續生效的話,這時候duplicateParentState就派上用場了。
  17. includeFontPadding="false"
    • TextView默認上下是有必定的padding的,有時候咱們可能不須要上下這部分留白,加上它便可。
  18. Messenger
    • 進程間通訊。
  19. TextView.setError();
    • 解釋:用於驗證用戶輸入。
  20. ViewConfiguration.getScaledTouchSlop();
    • 解釋:觸發移動事件的最小距離,自定義View處理touch事件的時候,有的時候須要判斷用戶是否真的存在movie,系統提供了這樣的方法。
  21. ValueAnimator.reverse();
    • 解釋:順暢的取消動畫效果。
  22. ViewStub
    • 有的時候一塊區域須要根據狀況顯示不一樣的佈局,一般咱們都會經過setVisibility的方法來顯示和隱藏不一樣的佈局,可是這樣默認是所有加載的,用ViewStub能夠更好的提高性能。
  23. onTrimMemory
    • 在Activity中重寫此方法,會在內存緊張的時候回調(支持多個級別),便於咱們主動的進行資源釋放,避免OOM。
  24. EditTxt.setImeOptions
    • 使用EditText彈出軟鍵盤時,修改回車鍵的顯示內容。
  25. TextView.setCompoundDrawablePadding
    • 代碼設置TextView的drawable padding。
  26. ImageSwitcher
    • 能夠用來作圖片切換的一個類,相似於幻燈片。
  27. WeakHashMap
    • 直接使用HashMap有時候會帶來內存溢出的風險,使用WaekHashMap實例化Map。當使用者再也不有對象引用的時候,WeakHashMap將自動被移除對應Key值的對象。
相關文章
相關標籤/搜索