Этот вопрос не столько вопрос Android, сколько вопрос 2D-графики.В настоящее время есть много гуру графики, которые пытаются решить именно вашу проблему.
Невозможно изменить размеры изображения без потери точности оригинала.Вопрос на самом деле заключается в том, приводит ли эта потеря в точности к потере ясности.Чаще всего ответ таков: верность снижается, а ясность тоже.Однако существует множество способов смягчить это.
Как правило, вы можете уменьшить изображение примерно до 1/2 исходного размера без артефактов.После того, как это выполнено, вы часто можете уменьшить размер еще раз в зависимости от сложности изображения (количества цветов).
В качестве альтернативы, вы можете увеличить изображение примерно до 1,75 оригинала.Вы почти никогда не сможете обмануть систему, снова увеличив размер.
Однако все ставки отключены, если вы измените соотношение сторон.Это потому, что это будет искажать изображение другими способами.В Android вы можете избежать изменения соотношения сторон в XML, установив для атрибута scaleType
значение centerInside
.Это значительно поможет и удержит изображение в границах.Особенно это следует делать для миниатюры ImageView
, если только вы не собираетесь установить такое же соотношение сторон, как у детального ImageView
.