Как найти необходимую ширину и высоту трех изображений? Есть tableRow, в него помещаются три ImageView. В ImageView загружаются фотографии различных размеров. Необходимо изменить масштаб каждой фотографии (подогнать под одну высоту) соблюдая правильную ширину изображений.
На данном ресурсе уже задавал аналогичный вопрос, только по двум изображениям: ссылка
В итоге для двух изображений Получилось следующее: float image1Width = Utils.getDownloadedImageWidth(post, indexImage1);
float image2Width = Utils.getDownloadedImageWidth(post, indexImage2);
float image1Height = Utils.getDownloadedImageHeight(post, indexImage1);
float image2Height = Utils.getDownloadedImageHeight(post, indexImage2);
float scale = Math.max(image1Height, image2Height);
float newImage1Width = (scale / image1Height) * image1Width;
float newImage2Width = (scale / image2Height) * image2Width;
float k1 = MainActivity.SCREEN_WIDTH / (image2Width * (image1Height / image2Height + image1Width / image2Width));
float k2 = k1 * (image1Height / image2Height);
float tempHeight1 = k1 * image1Height;
float tempHeight2 = k2 * image2Height;
float tempHeight = Math.max(tempHeight1, tempHeight2);
Где tempHeight - необходимая высота, а newImage1Width и newImage2Width - ширина.
Как данный алгоритм модифицировать для трех изображений?

21 Авг 2019 в 06:07
131 +1
0
Ответы
1

Для трех изображений вы можете продолжить использовать тот же подход, что и для двух изображений, добавив шаг для третьего изображения. Вот как это можно сделать:

float image1Width = Utils.getDownloadedImageWidth(post, indexImage1);
float image2Width = Utils.getDownloadedImageWidth(post, indexImage2);
float image3Width = Utils.getDownloadedImageWidth(post, indexImage3);
float image1Height = Utils.getDownloadedImageHeight(post, indexImage1);
float image2Height = Utils.getDownloadedImageHeight(post, indexImage2);
float image3Height = Utils.getDownloadedImageHeight(post, indexImage3);
float scale = Math.max(image1Height, Math.max(image2Height, image3Height));
float newImage1Width = (scale / image1Height) * image1Width;
float newImage2Width = (scale / image2Height) * image2Width;
float newImage3Width = (scale / image3Height) * image3Width;
float k1 = MainActivity.SCREEN_WIDTH / (image2Width * (image1Height / image2Height + image1Width / image2Width));
float k2 = k1 * (image1Height / image2Height);
float tempHeight1 = k1 * image1Height;
float tempHeight2 = k2 * image2Height;
float tempHeight3 = k1 * image3Height;
float tempHeight = Math.max(tempHeight1, Math.max(tempHeight2, tempHeight3));

Этот код поможет вам получить необходимую высоту и ширину для трех изображений при соблюдении пропорций и подгонке их под одну общую высоту.

20 Апр в 13:23
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 588 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир