首页 > 代码库 > android图片等比例缩放 填充屏幕

android图片等比例缩放 填充屏幕

用IamgeView的 android:scaleType  设置属性的时候  填充屏幕出现的各种问题

	/**
	 * 将图片等比例缩放 setAdjustViewBounds setMaxWidth setMaxWidth必须同时设置才有效
	 * 
	 * @param context
	 * @param view
	 *            父容器
	 * @param image
	 *            图片控件
	 * @param source
	 *            图片资源
	 */
	public static void setImageViewMathParent(Activity context, LinearLayout view,
			ImageView image, int source) {
		Bitmap bitmap = BitmapFactory.decodeResource(context.getResources(),
				source);
		DisplayMetrics displayMetrics = new DisplayMetrics();
		context.getWindowManager().getDefaultDisplay()
				.getMetrics(displayMetrics);
		float scalew = (float) displayMetrics.widthPixels
				/ (float) bitmap.getWidth();
		image.setScaleType(ScaleType.MATRIX);
		Matrix matrix = new Matrix();
		image.setAdjustViewBounds(true);
		if (displayMetrics.widthPixels < bitmap.getWidth()) {
			matrix.postScale(scalew, scalew);
		} else {
			matrix.postScale(1 / scalew, 1 / scalew);
		}
		image.setMaxWidth(displayMetrics.widthPixels);
		float ss = displayMetrics.heightPixels > bitmap.getHeight() ? displayMetrics.heightPixels
				: bitmap.getHeight();
		image.setMaxWidth((int) ss);
		view.addView(image);
		if (bitmap != null && bitmap.isRecycled()) {
			bitmap.recycle();
		}

	}