如何根据Android手机的屏幕宽度调整图片大小?

如何根据Android手机的屏幕宽度调整图片大小?,android,image,Android,Image,我希望用户从图库中选择图片。由于大多数图片的大小都非常大,我想将其缩放到最合适的宽度。当我只知道图片的路径时,有没有办法做到这一点?例如,如果位图是bmp,而ImageView是framePhoto: int iWidth=bmp.getWidth(); int iHeight=bmp.getHeight(); Display display = getWindowManager().getDefaultDisplay(); Di

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

例如,如果位图是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);

简单地说,从该图像获取imageMatrix,然后应用缩放操作