Andy Zhang
http://luckyandyzhang.github.io/2016/02/04/Android%E5%BC%80%E5%8F%91%E4%B8%AD%E4%B8%80%E4%BA%9B%E8%A2%AB%E5%86%B7%E8%90%BD%E4%BD%86%E5%8D%B4%E5%BE%88%E6%9C%89%E7%94%A8%E7%9A%84%E7%B1%BB%E5%92%8C%E6%96%B9%E6%B3%95/MediaMetadataRetriever
顧名思義,就是用來獲取媒體文件一些相關信息的類。包括一首歌的標題,作者,專輯封面和名稱,時長,比特率等等。如果是視頻的話,可以獲取視頻的長寬,預覽圖。
http://developer.android.com/intl/zh-cn/reference/android/media/MediaMetadataRetriever.html
TouchDelegate
用於更改View的觸摸區域。場景:比如在RecyclerView的ItemView裏包含了CheckBox組件, 然後想實現點擊ItemView的時候,也可以觸發CheckBox,就可以使用此類。
http://developer.android.com/intl/zh-cn/training/gestures/viewgroup.html#delegate
ArgbEvaluator
用於計算不同顏色值之間的插值,配合ValueAnimator.ofObject
或者ViewPager.PageTransformer
使用,可以實現不同顏色之間的平滑過渡。
http://developer.android.com/intl/zh-cn/reference/android/animation/ArgbEvaluator.html
Palette
用於提取一張圖片的顏色。
http://developer.android.com/intl/zh-cn/reference/android/support/v7/graphics/Palette.html
ViewDragHelper
做過自定義ViewGroup的童鞋都應該知道這個東西吧,用來處理觸摸事件的神器,媽媽再也不用擔心我自定義控件了。
http://developer.android.com/intl/zh-cn/reference/android/support/v4/widget/ViewDragHelper.html
PageTransformer
用於定義ViewPager頁面切換時的動畫效果(淡入淡出,放大縮小神馬的…)官方有例子,直接看吧。
http://developer.android.com/intl/zh-cn/training/animation/screen-slide.html
ViewFlipper
可以實現簡單輪播效果的一個組件。
http://developer.android.com/intl/zh-cn/reference/android/widget/ViewFlipper.html
LocalBroadcastManager
用於在APP內部使用的,效率和安全性更好的廣播工具類。
Messenger
進程間通信的一個工具類。內部也是由AIDL實現的,但是用起來超級方便。
http://developer.android.com/intl/zh-cn/reference/android/os/Messenger.html
Formatter.formatFileSize
根據文件大小自動轉爲以KB, MB, GB爲單位的工具類。想想以前都是自己計算的…
http://developer.android.com/intl/zh-cn/reference/android/text/format/Formatter.html
Activity.recreate
重新創建Activity。有什麼用呢?可以在程序更換主題後,立馬刷新當前Activity,而不會有明顯的重啓Activity的動畫。
http://developer.android.com/intl/zh-cn/reference/android/app/Activity.html#recreate%28%29
View.getContext
顧名思義,就不用解釋了吧…以前在寫RecyclerView的Adapter的時候,爲了使用LayoutInflater,經常傻乎乎地在構造函數中傳入一個外部的context….是不是隻有我不知道而已(笑cry臉)
http://developer.android.com/intl/zh-cn/reference/android/view/View.html#getContext()
View.post
方便在非UI線程對界面進行修改,與Handler的作用類似。並且由於post的Runnable會保證在該View繪製完成的前提下才調用,所以一般也可以用於獲取View的寬高。
http://developer.android.com/intl/zh-cn/reference/android/view/View.html#post(java.lang.Runnable)
Activity.runOnUiThread
與View.post
類似,方便在非UI線程中對界面進行修改。
Fragment.setUserVisibleHint
Fragment可以重寫此方法,然後根據參數的布爾值(true的話表示當前Fragment對用戶可見),來執行一些邏輯。
android:animateLayoutChanges
這是一個非常酷炫的屬性。在父佈局加上 android:animateLayoutChanges="true"
後,如果觸發了layout方法(比如它的子View設置爲GONE),系統就會自動幫你加上佈局改變時的動畫特效!!
http://developer.android.com/intl/zh-cn/training/animation/layout.html
android:clipToPadding
設置父view是否允許其子view在它的padding(這裏指的是父View的padding)中繪製。是不是有點繞?舉個實際場景吧:假如有個ListView,我們想要在初始位置時,第一項Item離頂部有10dp的距離,就可以在ListView的佈局中加入android:clipToPadding="false"
android:paddingTop="10dp"
即可。是不是很方便呢?
未完待續,不定期更新… 歡迎補充!