1. 程式人生 > >安卓圖片縮放

安卓圖片縮放

縮放圖片並載入到記憶體中
_計算機圖形處理的原理
計算機在表示圖形的時候使用畫素點來表示,每個畫素點都是使用一個顏色來表示,
每個顏色都是6個十六進位制的數值來表示的,計算機在底層表示圖形時就是使用01001字串來表示的,處理圖形時就是修改0101的序列。

縮放載入圖片:
1、得到裝置螢幕的解析度:
2、得到原圖的解析度:
3、通過比較得到一個合適的比例值:
4、使用比例值縮放一張圖片,並載入到記憶體中:

程式碼:

//    	1、得到裝置螢幕的解析度:
    	WindowManager wm = (WindowManager) getSystemService(WINDOW_SERVICE);
    	Display display = wm.getDefaultDisplay();
    	long screenHeigth = display.getHeight();
    	long screenWidth = display.getWidth();
    	
//    	2、得到原圖的解析度:
    	Options opts = new Options();
    	//如果置為true,表示只繫結圖片的大小
    	opts.inJustDecodeBounds = true;
    	BitmapFactory.decodeFile(Environment.getExternalStorageDirectory()+"/1.jpg", opts);
    	long scrHeight = opts.outHeight;
    	long scrWidth = opts.outWidth;
    	
//    	3、通過比較得到一個合適的比例值:
    	int scale = 1;
    	
    	//3000/320  = 9 3000/480=6
    	int sx = (int) (scrWidth/screenWidth);
    	int sy = (int) (scrHeight/screenHeigth);
    	if(sx>=sy&& sx>=1){
    		scale = sx;
    	}
    	if(sy>sx&& sy>=1){
    		scale = sy;
    	}
//    	4、使用比例值縮放一張圖片,並載入到記憶體中:
    	opts.inJustDecodeBounds = false;
    	//按照比例縮放原圖
    	opts.inSampleSize = scale;
    	Bitmap bm = BitmapFactory.decodeFile(Environment.getExternalStorageDirectory()+"/1.jpg", opts);