Android小技巧(2)
前言
本文是一篇譯文,這篇是這個系列的第二篇.講述的是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() 方便構建類和構造器的方法。