android在不加載圖檔的前提下獲得圖檔的寬高
public static int[] getImageWidthHeight(String path){
BitmapFactory.Options options = new BitmapFactory.Options();
/**
* 最關鍵在此,把options.inJustDecodeBounds = true;
* 這裡再decodeFile(),傳回的bitmap為空,但此時調用options.outHeight時,已經包含了圖檔的高了
*/
options.inJustDecodeBounds = true;
Bitmap bitmap = BitmapFactory.decodeFile(path, options); // 此時傳回的bitmap為null
/**
*options.outHeight為原始圖檔的高
*/
return new int[]{options.outWidth,options.outHeight};
}
通過BitmapFactory從不同位置擷取Bitmap
1.資源檔案(drawable/mipmap/raw)
BitmapFactory.decodeResource(getResources(), R.mipmap.slim_lose_weight_plan_copenhagen,options);
2.資源檔案(assets)
InputStream is = getActivity().getAssets().open("bitmap.png");
BitmapFactory.decodeStream(is);
3.記憶體卡檔案
bitmap = BitmapFactory.decodeFile("/sdcard/bitmap.png");
4.網絡檔案
bitmap = BitmapFactory.decodeStream(is);