前言
本文是一篇譯文,這篇是這個系列的第二篇。講述的是Android開發中遇到的一些好用的小技巧,或者一些實用的API,很多人都知道,但也有人不知道,記錄下來,如果能幫助到大家,也是極好的。由於不是嚴格的博文,所以翻譯也不那麼嚴格,有些工具和類我也會經常用,所以我會根據自己的想法去寫。有些地方坐在並沒有將這個工具的作用講出來,我會補充上去。
正文
DateUtils.formatDateTime()
用來進行區域格式化工作,輸出格式化和本地化的時間或者日期。
AlarmManager.setInexactRepeating
通過鬧鈴分組的方式省電,即使你只呼叫了一個鬧鐘,這也是一個好的選擇,(可以確保在使用完畢時自動呼叫 AlarmManager.cancel ()。原文說的比較抽象,這裡詳細說一下:setInexactRepeating指的是設定非準確鬧鐘,使用方法:alarmManager.setInexactRepeating(AlarmManager.RTC, startTime,intervalL, pendingIntent),非準確鬧鐘只能保證大致的時間間隔,但是不一定準確,可能出現設定間隔為30分鐘,但是實際上一次間隔20分鐘,另一次間隔40分鐘。它的最大的好處是可以合併鬧鐘事件,比如間隔設定每30分鐘一次,不喚醒休眠,在休眠8小時後已經積累了16個鬧鐘事件,而在手機被喚醒的時候,非準時鬧鐘可以把16個事件合併為一個, 所以這麼看來,非準時鬧鐘一般來說比較節約能源。
Formatter.formatFileSize()
一個區域化的檔案大小格式化工具。通俗來說就是把大小轉換為MB,G,KB之類的字串。
ActionBar.hide()
/.show()
顧名思義,隱藏和顯示ActionBar,可以優雅地在全屏和帶Actionbar之間轉換。
Linkify.addLinks()
在Text上新增連結。很實用。
StaticLayout
在自定義 View 中渲染文字的時候很實用。
Activity.onBackPressed()
很方便的管理back鍵的方法,有時候需要自己控制返回鍵的事件的時候,可以重寫一下。比如加入 “點兩下back鍵退出” 功能。
GestureDetector
用來監聽和相應對應的手勢事件,比如點選,長按,慢滑動,快滑動,用起來很簡單,比你自己實現要方便許多。
DrawFilter
可以讓你在不呼叫onDrew方法的情況下,操作canvas,比了個如,你可以在建立自定義 View 的時候設定一個 DrawFilter,給父 View 裡面的所有 View 設定反別名。
ActivityManager.getMemoryClass()
告訴你你的機器還有多少記憶體,在計算快取大小的時候會比較有用.
ViewStub
它是一個初始化不做任何事情的 View,但是之後可以載入一個佈局檔案。在慢載入 View 中很適合做佔位符。唯一的缺點就是不支援標籤,所以如果你不太小心的話,可能會在檢視結構中加入不需要的巢狀。
SystemClock.sleep()
這個方法在保證一定時間的 sleep 時很方便,通常我用來進行 debug 和模擬網路延時。
DisplayMetrics.density
這個方法你可以獲取裝置畫素密度,大部分時候最好讓系統來自動進行縮放資源之類的操作,但是有時候控制的效果會更好一些.(尤其是在自定義View的時候).
Pair.create()
方便構建類和構造器的方法。