我希望用户从图库中选择图片。由于大多数图片的尺寸很大,因此我想将其缩放到最合适的宽度。当我只知道图片的路径时,有没有办法做到这一点?
最佳答案
例如,如果您的位图是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);