resources.getsystem().getdisplaymetrics().density 可以不用 context 也能獲取螢幕密度哦
通過過載 viewgroup 的 dispatchdraw 可以實現乙個簡單的蒙版效果。 例如下拉重新整理時,可以在 contentview 上加一層遮罩。 canvas.drawrect(0, mcontentview.gettranslationy(), getwidth(), getheight(), mmaskpaint);
new 出來的 view 可以用 view.generateviewid() 生成 id,系統保證唯一。
使用 gridview時 android:padding 和 android:cliptopadding="false" 配合使用效果更好哦。
在布局檔案中,如果只是為了佔位,可以用 space 來取代 view。 最棒的一點是space可以跳過 draw 這個過程。
activity.startactivities() 這個方法最直接的理解就是使用intent開啟多個activity
textutils.isempty() 如果傳入的string 為null或者length為0的話就返回 true。
html.fromhtml() 如果你對html熟悉的話,可以很迅速通過這個方法處理一些富文字操作。比如超連結和**排版等處理。
textview.seterror() 設定文字框錯誤提醒
phonenumberutils.convertkeypadletterstodigits 這個方法簡單粗暴,會將輸入的字母根據鍵盤上的對映轉換為數字。
valueanimator.reverse() 順暢的取消動畫效果
dateutils.formatdatetime()) 這個方法可以輸出相應格式化的時間或者日期
formatter.formatfilesize() 這個方法會格式化資料的大小,根據輸入的位元組大小,返回 b kb mb gb 等等(最大支援到 pb)。當然要注意的是輸入的最大值是 long.max_value.
pair.create() 這個類 可以用來儲存儲存一」組」資料。但不是key和value的關係。
sparsearray 目前有很多地方從效能優化方說使用sparsearray來替換hashmap,來節省記憶體,提高效能。
linkify.addlinks() 這個類可以更方便的為文字新增超連結。
android.text.spanned
thumbnailutils 這個類主要是用來處理縮圖相關的,有過這方面需求的,應該是用過這個類的。
bitmap.extractalpha ();返回乙個新的bitmap,capture原始的alpha值。有的時候我們需要動態的修改乙個元素的背景又不希望使用多張的時候,通過這個方法,結合canvas和paint可以動態的修改乙個純色bitmap的顏色。
模組間有訊息需要傳遞時,使用localbroadcastmanager替代listener進行模組解耦。除了解耦,這樣傳送訊息和執行訊息差乙個執行緒迴圈,可以減小方法的呼叫鏈,我這就碰到一次方法呼叫鏈太長導致stackoverflow的問題。
靜態變數不要直接或者間接引用activity、service等。這會使用activity以及它所引用的所有物件無法釋放,然後,使用者操作時間一長,記憶體就會狂公升。
handler機制有乙個特點是不會隨著activity、service的生命週期結束而結束。也就是說,如果你post了乙個delay的runnable,然後在runnable執行之前退出了activity,runnable到時間之後還是要執行的。如果runnable裡面包含更新view的操作,程式崩潰了。
不少人在子執行緒中更新view時喜歡使用context.runonuithread,這個方法有個缺點,就是一但context生命週期結束,比如activity已經銷毀時,一呼叫就會崩潰。
packagemanager.getinstalledpackages這個方法經常使用,你可能不知道,當獲取的結果數量比較多的時候,在某些機型上面呼叫它花費的時間可能秒級的,所以盡量在子執行緒中使用。另外,如果結果太多,超過系統設定的binder資料最大傳輸量的上限,則會發生transactionexception,如果你使用這個方法獲取機器上的己安裝應用列表,最好做一下預防。
如果使用context.startactivity啟動外部應用,最好做一下異常預防,因為尋找不到對應的應用時,會丟擲異常。如果你要開啟的是應用內的activity,不防使用顯式intent,這樣能提高系統搜尋目標activity的效率。
getwindow().setlayout(viewgroup.layoutparams.match_parent, viewgroup.layoutparams.match_parent);設定全屏方法一定要在setcontentview之後
viewpager 的 setcurrentitem 一定要在 setadapter 方法之後呼叫才會有效果.
判斷手機是不是飛行模式 boolean isenabled = settings.system.getint(context.getcontentresolver(), settings.system.airplane_mode_on, 0) == 1;
遍歷hashmap的最佳方法
publicstatic
void printmap(map mp)
}
publicstatic
int randint(int min, int max)
publicstatic
bitmap blurbitmap(context context, bitmap src, int radius)
publicvoid captureview() else
bmp1.recycle();
}private
int getstatusheight(context ct)
return result;
}
收集android studio 常用的外掛程式,請看這裡:
收集程式設計師必備的那些chrome外掛程式:
通過recyclerview實現的聯絡人:
展示註冊進度的view:
可定製的viewpagerindicator:
通過viewpager的滑動來對fragment內的元素進行動畫操作:
**:
Nginx基礎知識點彙總3
問題 客戶端與 nginx 伺服器之間的請求資料需要加密處理。解決方案 啟用 ngx http ssl module 或 ngx stream ssl module 其中之一的 nginx ssl 模組對資料進行加密 例項在 server 塊級指令中設定監聽啟用 ssl 加密的 8843 埠。使用的...
基礎知識點
1 inline block布局 2 table布局 3 justify的末行不對齊 4 兩個圖示之間有空格 換行 5 背景中的的 路徑的 全部斜槓都為 不是 命令列下的這種 doctype html html head meta charset utf 8 title xx title head ...
Android 開發知識點彙總
activity service contentprovider broadcastreceiver fragment intent loader window 常用控制項 檢視的工作原理 事件體系 傳遞機制 自定義檢視 r檔案相關 drawable mipmap materialdesign 訊息...