一些技巧(2)

1、Btimap處理大圖片的解決方法

Android的Dalvik VM爲一個應用提供了大約16MB的內存,一般我們處理超過8MB的圖片將會出現OutOfMemoryError異常,我們解碼一個圖片爲了防止內存不足的異常我們可以使用BitmapFactory.Options 的udeinTempStorage屬性解決,代碼如下

BitmapFactory.Options cwj = new BitmapFactory.Options();
cwj.inTempStorage = new byte[1024*1024*5]; //5MB的臨時存儲空間

Bitmap bm = BitmapFactory.decodeFile(inputStream,cwj); //這裏cwj爲Options屬性

 

2、將px像素轉爲dip獨立設備像素

由於Android的設備分辨率衆多,目前主流的爲wvga,而很多老的設備爲hvga甚至低端的qvga,對於兼容性來說使用dip無非是比較方便的,由於他和分辨率無關和屏幕的密度大小有關,所以推薦使用,不過這裏android123提示大家,ophone os的手機對於dip的支持糟糕透了,顯示的結果會放大很多,同時黑色的主題會導致常規的黑色文字讓用戶無法分辨。

  px= (int) (dip*density+0.5f) //這裏android開發網提示大家很多網友獲取density的方法存在問題,從資源中獲取的是靜態定義的,一般爲1.0對於HVGA是正好的,而對於wvga這樣的應該從WindowsManager中獲取,WVGA爲1.5。

 

3、android 2.2中的SD卡上apk文件新增標記

從Android 2.2開始軟件可以安裝到SD卡上,在API Level爲8的SDK中新增了一個標記可以判斷應用程序安裝在機身內或機身外,通過ApplicationInfo.FLAG_EXTERNAL_STORAGE 標記可以判斷應用是否爲是否安裝在Sdcard上,當然對於SDK低於Android 2.2時可以通過ApplicationInfo的sourceDir屬性爲/sdcard/開頭來確定APK安裝的位置。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章