標籤:android基礎
載入大圖片到記憶體步驟:步驟一:
擷取品螢幕的寬高資料;[HD1]
步驟二:
擷取圖片的寬高;[HD2]
步驟三:
計算螢幕與圖片的寬高比例,按照差距最大的進行縮放處理;[HD3]
步驟四:
圖片的縮放處理;[HD4]
[HD1]//擷取手機的螢幕的表單大小
WindowManager windowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
Display display = windowManager.getDefaultDisplay();
windowHeight = display.getHeight();
windowWidth = display.getWidth();
[HD2]//圖片解析配置的類
Options options = new Options();
//不會真的進行圖片解析,只是擷取到圖片的頭資訊:寬X高日期等
options.inJustDecodeBounds =true;
//設定圖片解析類的目標檔案
BitmapFactory.decodeFile("/sdcard/x.jpg", options);
//擷取圖片的高X寬
int imageHeight = options.outHeight;
int imageWidth = options.outWidth;
System.out.println("圖片的高:" + imageHeight + "圖片的寬:" + imageWidth);
[HD3]//使用圖片的寬高和螢幕的寬高進行計算,算出比例
int scaleX = imageWidth /windowWidth;
int scaleY = imageHeight /windowHeight;
//預設的比例
int scale = 1;
if (scaleX > scaleY & scaleY >= 1) {
scale = scaleX;
}
if (scaleY > scaleX & scaleX >= 1) {
scale = scaleY;
}
[HD4] // 設定圖片解析器真的去解析圖片
options.inJustDecodeBounds =false;
//設定解析的採樣率,設定的值是縮放比例1/scale
options.inSampleSize = scale;
//再次擷取圖片位元影像,並設定採樣率
Bitmap bitmap = BitmapFactory.decodeFile("/sdcard/x.jpg", options);
iv.setImageBitmap(bitmap);