我想缩放位图以保持宽高比,但适合所需的尺寸。该答案将缩放位图并保持宽高比,但是会留下一些空白,除非图像是完美的正方形。我需要同时填充宽度和高度,就像的FIT_XY
ScaleType属性一样ImageView
。
根据波士顿的Streets的回答,我制作了此方法,该方法可以缩放并返回任何位图为所需的宽度和高度,并适合两个尺寸(无空格!)。它会自动适应更多水平或更多垂直图像。
public Bitmap resizeBitmapFitXY(int width, int height, Bitmap bitmap){
Bitmap background = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
float originalWidth = bitmap.getWidth(), originalHeight = bitmap.getHeight();
Canvas canvas = new Canvas(background);
float scale, xTranslation = 0.0f, yTranslation = 0.0f;
if (originalWidth > originalHeight) {
scale = height/originalHeight;
xTranslation = (width - originalWidth * scale)/2.0f;
}
else {
scale = width / originalWidth;
yTranslation = (height - originalHeight * scale)/2.0f;
}
Matrix transformation = new Matrix();
transformation.postTranslate(xTranslation, yTranslation);
transformation.preScale(scale, scale);
Paint paint = new Paint();
paint.setFilterBitmap(true);
canvas.drawBitmap(bitmap, transformation, paint);
return background;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句