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