Как найти необходимую ширину и высоту трех изображений? Есть 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 - ширина. Как данный алгоритм модифицировать для трех изображений?
Для трех изображений вы можете продолжить использовать тот же подход, что и для двух изображений, добавив шаг для третьего изображения. Вот как это можно сделать:
Для трех изображений вы можете продолжить использовать тот же подход, что и для двух изображений, добавив шаг для третьего изображения. Вот как это можно сделать:
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));
Этот код поможет вам получить необходимую высоту и ширину для трех изображений при соблюдении пропорций и подгонке их под одну общую высоту.