1. 程式人生 > >安卓基礎之縮放載入本地大圖

安卓基礎之縮放載入本地大圖

1.獲取手機螢幕解析度

 WindowManager wm= (WindowManager)getSystemService(WINDOW_SERVICE);
        int height=wm.getDefaultDisplay().getHeight();
        int width=wm.getDefaultDisplay().getWidth();
        System.out.println(height+"--"+width);

 

2.獲取圖片解析度

BitmapFactory.Options options=new BitmapFactory.Options();

//使用injustDecodeBounds=true,使得解碼圖片返回寬和高,如果直接返回圖片而不進行縮放,可能因為圖片過大發生oom異常 options.inJustDecodeBounds
=true;
BitmapFactory.decodeFile(****
,options);   //****:本地圖片檔案的路徑 int p_h=options.outHeight; int p_w=options.outWidth; System.out.println(p_h+"--"+p_w);

 

3.計算縮放比例

//按照比例大的縮放,可以保證縮放後寬和高都不超過螢幕
     int
scale=0; int scalex=height/p_h; int scaley=width/p_w; if(scalex>scaley&&scalex>1){ scale
=scalex; } if(scaley>scalex&&scaley>1){ scale=scaley; }

 

4.獲取縮放後的圖片

    options.inSampleSize=scale;
    options.inJustDecodeBounds=false;
    Bitmap bitmap=BitmapFactory.decodeFile(****,options)