天天看點

android擷取Bitmap對象,擷取圖檔寬高

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);
           

可根據BitmapFactory擷取圖檔時傳入option,通過上述方法擷取圖檔的寬高