Android開發中一些被冷落但卻很有用的類和方法

來源:互聯網
上載者:User

標籤:

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

http://www.cnblogs.com/lqstayreal/p/4500219.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內部使用的,效率和安全性更好的廣播工具類。

http://developer.android.com/intl/zh-cn/reference/android/support/v4/content/LocalBroadcastManager.html

Messenger

處理序間通訊的一個工具類。內部也是由AIDL實現的,但是用起來超級方便。

http://developer.android.com/intl/zh-cn/reference/android/os/Messenger.html

http://blog.csdn.net/lmj623565791/article/details/47017485

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線程中對介面進行修改。

http://developer.android.com/intl/zh-cn/reference/android/app/Activity.html#runOnUiThread(java.lang.Runnable)

Fragment.setUserVisibleHint

Fragment可以重寫此方法,然後根據參數的布爾值(true的話表示當前Fragment對使用者可見),來執行一些邏輯。

http://developer.android.com/intl/zh-cn/reference/android/support/v4/app/Fragment.html#setUserVisibleHint(boolean)

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"即可。是不是很方便呢?

http://developer.android.com/intl/zh-cn/reference/android/view/ViewGroup.html#attr_android:clipToPadding

Android開發中一些被冷落但卻很有用的類和方法

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.