Изменение размера растрового изображения с сохранением соотношения сторон, ошибка - PullRequest
0 голосов
/ 10 марта 2020

Я изменил размер изображения, сохранив соотношение сторон изображения, успешно работает с изображениями шириной или квадратом, однако он создает некоторые искажения в изображениях по высоте, создает зазоры вокруг него, как видно на рисунке, как я могу это исправить?

image aspccet ratio

Код, который я использую;

imageView.setImageBitmap(resize(bitmap, getResources().getDisplayMetrics().widthPixels, getResources().getDisplayMetrics().heightPixels));

private Bitmap resize(Bitmap image, int maxWidth, int maxHeight) {
    if (maxHeight > 0 && maxWidth > 0) {
        int width = image.getWidth();
        int height = image.getHeight();
        float ratioBitmap = (float) width / (float) height;
        float ratioMax = (float) maxWidth / (float) maxHeight;

        int finalWidth = maxWidth;
        int finalHeight = maxHeight;
        if (ratioMax > ratioBitmap) {
            finalWidth = (int) ((float)maxHeight * ratioBitmap);
        } else {
            finalHeight = (int) ((float)maxWidth / ratioBitmap);
        }
        image = Bitmap.createScaledBitmap(image, finalWidth, finalHeight, true);
        return image;
    } else {
        return image;
    }
}
...