本文摘自同行說用戶“學(xué)文”分享的文章敛熬,原文鏈接:http://luckyandyzhang.github.io硬猫,如涉及版權(quán)問題請(qǐng)及時(shí)聯(lián)系小編冰抢!
MediaMetadataRetriever
顧名思義算凿,就是用來獲取媒體文件一些相關(guān)信息的類念恍。包括一首歌的標(biāo)題,作者趣避,專輯封面和名稱庞呕,時(shí)長,比特率等等程帕。如果是視頻的話住练,可以獲取視頻的長寬,預(yù)覽圖愁拭。
http://developer.android.com/intl/zh-cn/reference/android/media/MediaMetadataRetriever.html
TouchDelegate
用于更改View的觸摸區(qū)域讲逛。場景:比如在RecyclerView的ItemView里包含了CheckBox組件, 然后想實(shí)現(xiàn)點(diǎn)擊ItemView的時(shí)候,也可以觸發(fā)CheckBox岭埠,就可以使用此類盏混。
http://developer.android.com/intl/zh-cn/training/gestures/viewgroup.html#delegate
ArgbEvaluator
用于計(jì)算不同顏色值之間的插值,配合ValueAnimator.ofObject或者ViewPager.PageTransformer使用惜论,可以實(shí)現(xiàn)不同顏色之間的平滑過渡许赃。
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的童鞋都應(yīng)該知道這個(gè)東西吧馆类,用來處理觸摸事件的神器混聊,媽媽再也不用擔(dān)心我自定義控件了。
http://developer.android.com/intl/zh-cn/reference/android/support/v4/widget/ViewDragHelper.html
http://www.cnblogs.com/lqstayreal/p/4500219.html
PageTransformer
用于定義ViewPager頁面切換時(shí)的動(dòng)畫效果(淡入淡出乾巧,放大縮小神馬的…)官方有例子句喜,直接看吧僵闯。
http://developer.android.com/intl/zh-cn/training/animation/screen-slide.html
ViewFlipper
可以實(shí)現(xiàn)簡單輪播效果的一個(gè)組件。
http://developer.android.com/intl/zh-cn/reference/android/widget/ViewFlipper.html
LocalBroadcastManager
用于在APP內(nèi)部使用的藤滥,效率和安全性更好的廣播工具類鳖粟。
Messenger
進(jìn)程間通信的一個(gè)工具類。內(nèi)部也是由AIDL實(shí)現(xiàn)的拙绊,但是用起來超級(jí)方便向图。
http://developer.android.com/intl/zh-cn/reference/android/os/Messenger.html
http://blog.csdn.net/lmj623565791/article/details/47017485
Formatter.formatFileSize
根據(jù)文件大小自動(dòng)轉(zhuǎn)為以KB, MB, GB為單位的工具類。想想以前都是自己計(jì)算的…
http://developer.android.com/intl/zh-cn/reference/android/text/format/Formatter.html
Activity.recreate
重新創(chuàng)建Activity标沪。有什么用呢榄攀?可以在程序更換主題后,立馬刷新當(dāng)前Activity金句,而不會(huì)有明顯的重啟Activity的動(dòng)畫檩赢。
http://developer.android.com/intl/zh-cn/reference/android/app/Activity.html#recreate%28%29
View.getContext
顧名思義,就不用解釋了吧…以前在寫RecyclerView的Adapter的時(shí)候违寞,為了使用LayoutInflater贞瞒,經(jīng)常傻乎乎地在構(gòu)造函數(shù)中傳入一個(gè)外部的context….是不是只有我不知道而已(笑cry臉)
http://developer.android.com/intl/zh-cn/reference/android/view/View.html#getContext()
View.post
方便在非UI線程對(duì)界面進(jìn)行修改,與Handler的作用類似趁曼。并且由于post的Runnable會(huì)保證在該View繪制完成的前提下才調(diào)用军浆,所以一般也可以用于獲取View的寬高。
http://developer.android.com/intl/zh-cn/reference/android/view/View.html#post(java.lang.Runnable)
Activity.runOnUiThread
與View.post類似挡闰,方便在非UI線程中對(duì)界面進(jìn)行修改乒融。
Fragment.setUserVisibleHint
Fragment可以重寫此方法,然后根據(jù)參數(shù)的布爾值(true的話表示當(dāng)前Fragment對(duì)用戶可見)摄悯,來執(zhí)行一些邏輯赞季。
android:animateLayoutChanges
這是一個(gè)非常酷炫的屬性奢驯。在父布局加上android:animateLayoutChanges="true"后申钩,如果觸發(fā)了layout方法(比如它的子View設(shè)置為GONE),系統(tǒng)就會(huì)自動(dòng)幫你加上布局改變時(shí)的動(dòng)畫特效_冻鳌典蜕!
http://developer.android.com/intl/zh-cn/training/animation/layout.html
android:clipToPadding
設(shè)置父view是否允許其子view在它的padding(這里指的是父View的padding)中繪制。是不是有點(diǎn)繞罗洗?舉個(gè)實(shí)際場景吧:假如有個(gè)ListView,我們想要在初始位置時(shí)钢猛,第一項(xiàng)Item離頂部有10dp的距離伙菜,就可以在ListView的布局中加入android:clipToPadding="false"android:paddingTop="10dp"即可。是不是很方便呢命迈?
團(tuán)隊(duì)開發(fā)了一款工程師贩绕、產(chǎn)品經(jīng)理必備神器【同行說】APP火的,找大牛、看最新最熱干貨淑倾,勾搭妹紙馏鹤,快來同行說吧!