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

第一种方法:在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();
        }

    }

 

posted @ 2017-09-21 10:02  星辰之力  阅读(913)  评论(0编辑  收藏  举报