ImageView控件自适应图片(解决ImageView属性scaleType和adjustViewBounds不起作用的兼容问题)


    场景:安卓应用中要求图片充满屏幕宽度,高度随着宽度的伸缩比例自动伸缩。(不用考虑图片宽高比,等比例缩放图片)


        /**
	 * 自适应图片的ImageView
	 * @param context
	 * @param image
	 * @param source
	 */
	public static void setImageViewMathParent(Activity context,  
			ImageView image, Bitmap bitmap) {  
		//获得屏幕密度
		DisplayMetrics displayMetrics = new DisplayMetrics();  
		context.getWindowManager().getDefaultDisplay()  
		.getMetrics(displayMetrics);  
		//获得屏幕宽度和图片宽度的比例
		float scalew = (float)displayMetrics.widthPixels  
				/ (float) bitmap.getWidth();  
		//获得ImageView的参数类
		ViewGroup.LayoutParams vgl=image.getLayoutParams();
		//设置ImageView的宽度为屏幕的宽度
		vgl.width=displayMetrics.widthPixels;
		//设置ImageView的高度
		vgl.height=(int) (bitmap.getHeight()*scalew);
		//设置图片充满ImageView控件
		image.setScaleType(ScaleType.FIT_XY);
		//等比例缩放
		image.setAdjustViewBounds(true);
		image.setLayoutParams(vgl);
		image.setImageBitmap(bitmap);

		if (bitmap != null && bitmap.isRecycled()) {  
			bitmap.recycle();  
		}  

	}  


 可以把此静态方法放到BitmapUtils这个工具类中。




评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值