Android图片缩放 指定尺寸

//使用Bitmap加Matrix来缩放
    public static Drawable resizeImage(Bitmap bitmap, int w, int h)
    
        Bitmap BitmapOrg = bitmap; 
        int width = BitmapOrg.getWidth(); 
        int height = BitmapOrg.getHeight(); 
        int newWidth = w; 
        int newHeight = h; 
 
        float scaleWidth = ((float) newWidth) / width; 
        float scaleHeight = ((float) newHeight) / height; 
 
        Matrix matrix = new Matrix(); 
        matrix.postScale(scaleWidth, scaleHeight); 
        // if you want to rotate the Bitmap  
        // matrix.postRotate(45);  
        Bitmap resizedBitmap = Bitmap.createBitmap(BitmapOrg, 0, 0, width, 
                        height, matrix, true); 
        return new BitmapDrawable(resizedBitmap); 
    }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
//使用BitmapFactory.Options的inSampleSize参数来缩放
    public static Drawable resizeImage2(String path,
            int width,int height)
    {
        BitmapFactory.Options options = new BitmapFactory.Options();
        options.inJustDecodeBounds = true;//不加载bitmap到内存中
        BitmapFactory.decodeFile(path,options);
        int outWidth = options.outWidth;
        int outHeight = options.outHeight;
        options.inDither = false;
        options.inPreferredConfig = Bitmap.Config.ARGB_8888;
        options.inSampleSize = 1;
         
        if (outWidth != 0 && outHeight != 0 && width != 0 && height != 0)
        {
            int sampleSize=(outWidth/width+outHeight/height)/2;
            Log.d(tag, "sampleSize = " + sampleSize);
            options.inSampleSize = sampleSize;
        }
     
        options.inJustDecodeBounds = false;
        return new BitmapDrawable(BitmapFactory.decodeFile(path, options));    
    }

 

推推族,免费得门票,游景区:www.tuituizu.com

结伴旅游,一个免费的交友网站:www.jieberu.com

posted @ 2015-01-09 14:46  回忆安在  阅读(784)  评论(0编辑  收藏  举报