android中缩放图片的方法

	 static Drawable zoomDrawable(Drawable drawable, int w, int h)  
	    {  
	              int width = drawable.getIntrinsicWidth();  
	              int height= drawable.getIntrinsicHeight();
	              Log.d("ME", "Width = " + width);
	              Log.d("ME", "Height = " + height);
	              Bitmap oldbmp = drawableToBitmap(drawable); // drawable转换成bitmap  
	              Matrix matrix = new Matrix();   // 创建操作图片用的Matrix对象  
	              float scaleWidth = ((float)w / width);   // 计算缩放比例  
	              float scaleHeight = ((float)h / height);
	              
	              Log.d("ME", "scaleWidth = " + scaleWidth);
	              Log.d("ME", "scaleHeight = " + scaleHeight);
	              
	              matrix.postScale(scaleWidth, scaleHeight);         // 设置缩放比例  
	              Bitmap newbmp = Bitmap.createBitmap(oldbmp, 0, 0, width, height, matrix, true);       // 建立新的bitmap,其内容是对原bitmap的缩放后的图  
	              return new BitmapDrawable(newbmp);       // 把bitmap转换成drawable并返回  
	    }  
	  
	    static Bitmap drawableToBitmap(Drawable drawable) 		// drawable 转换成bitmap  
	    {  
	              int width = drawable.getIntrinsicWidth();   	// 取drawable的长宽  
	              int height = drawable.getIntrinsicHeight();  
	              Bitmap.Config config = drawable.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888:Bitmap.Config.RGB_565;         // 取drawable的颜色格式  
	              Bitmap bitmap = Bitmap.createBitmap(width, height, config);    		 // 建立对应bitmap  
	              Canvas canvas = new Canvas(bitmap);         							 // 建立对应bitmap的画布  
	              drawable.setBounds(0, 0, width, height);  
	              drawable.draw(canvas);      											 // 把drawable内容画到画布中  
	              return bitmap;  
	    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值