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这个工具类中。




你可能感兴趣的:(android)