最近剛進入新公司實習,在查看Android項目代碼的時候看到以前的同事是這麼寫的代碼獲取Bitmap的大小:
return bitmap.getRowBytes() * bitmap.getHeight();// 獲取大小並返回
感覺很奇怪,為什麼要這樣計算而不是直接調用bitmap.getByteCount();呢?
查閱文檔之後才知道,這個項目的minSDK=8,targetSDK=19,因此無法直接調用,而要通過這樣的方式寫。但是,我還是覺得這樣寫不嚴謹,因為對於API LEVEL 12以後的版本還是該使用新的方法。
這裡總結一下獲取Bitmap圖片大小的代碼:
public int getBitmapSize(Bitmap bitmap){
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT){ //API 19
return bitmap.getAllocationByteCount();
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR1){//API 12
return bitmap.getByteCount();
}
return bitmap.getRowBytes() * bitmap.getHeight(); //earlier version
}
最簡單的Ubuntu Touch & Android 雙系統安裝方式 http://www.linuxidc.com/Linux/2014-01/94881.htm
在Nexus上實現Ubuntu和Android 4.4.2 雙啟動 http://www.linuxidc.com/Linux/2014-05/101849.htm
Ubuntu 14.04 配置 Android SDK 開發環境 http://www.linuxidc.com/Linux/2014-05/101039.htm
64位Ubuntu 11.10下Android開發環境的搭建(JDK+Eclipse+ADT+Android SDK詳細) http://www.linuxidc.com/Linux/2013-06/85303.htm
Ubuntu 14.04 x64配置Android 4.4 kitkat編譯環境的方法 http://www.linuxidc.com/Linux/2014-04/101148.htm
Ubuntu 12.10 x64 安裝 Android SDK http://www.linuxidc.com/Linux/2013-03/82005.htm
更多Android相關信息見Android 專題頁面 http://www.linuxidc.com/topicnews.aspx?tid=11