我希望用户从图库中选择图片。由于大多数图片的尺寸很大,因此我想将其缩放到最合适的宽度。当我只知道图片的路径时,有没有办法做到这一点?

最佳答案

例如,如果您的位图是bmp,而ImageView是framePhoto:

        int iWidth=bmp.getWidth();
        int iHeight=bmp.getHeight();

        Display display = getWindowManager().getDefaultDisplay();
        DisplayMetrics dm = new DisplayMetrics();
        display.getMetrics(dm);

        int dWidth=dm.widthPixels;
        int dHeight=dm.heightPixels;

        float sWidth=((float) dWidth)/iWidth;
        float sHeight=((float) dHeight)/iHeight;

        if(sWidth>sHeight) sWidth=sHeight;
        else sHeight=sWidth;

        Matrix matrix=new Matrix();
        matrix.postScale(sWidth,sHeight);
        newImage=Bitmap.createBitmap(bmp, 0, 0, iWidth, iHeight, matrix, true);
        framePhoto.setImageBitmap(newImage);

08-17 16:00