第一种方法:在ImageView的t同事设置两个属性
android:adjustViewBounds="true"
android:scaleType="fitXY"
第二中方法:用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();
- }
- }