Масштабирование изображения без видимой причины

#java #android #xml #imageview

#java #Android #xml #просмотр изображения

Вопрос:

Я использую Android Studio и создал ImageView в activity_mail.xml . Ширина и высота макета установлены в «match_parent». Для scaleType установлено значение «center», а исходное изображение имеет размер 70×70 пикселей. Когда я запускаю приложение в эмуляторе, на экране появляется изображение размером более 70×70 пикселей. Я имею в виду, что он занимает более 70×70 пикселей на экране телефона. Я не знаю, почему он это делает. Приложение работает исключительно в ландшафтном режиме, что может иметь значение. Простите меня, если я включил посторонние детали, я действительно не знаю, какую информацию было бы уместно включить. Я намерен сделать так, чтобы изображение занимало 70×70 пикселей на экране телефона. Что вызывает непреднамеренный результат и как я могу это исправить?

Комментарии:

1. Добро пожаловать в SO 🙂 Людям будет проще помочь вам, если вы предоставите минимальный пример кода для воспроизведения проблемы, а также версию Android и тип телефона, который вы используете. Это также имеет приятный побочный эффект, заключающийся в том, что, создавая минимальную версию вашей проблемы, вы ограничиваете возможные источники ошибки и, возможно, даже решаете ее 🙂

Ответ №1:

изменение ScaleType , возможно fit_center , вместо просто center android:adjustViewBounds="true” будет соответствовать вашим целям… другой способ — создать ImageView с wrap_content размерами, помещенными в некоторый контейнер (например, RelativeLayout ) с match_parent размерами

также проверьте это визуальное руководство на ScaleType

обратите внимание, что изображение с разрешением 70 пикселей будет большим на устройствах с разрешением HD и значительно меньшим на устройствах, например, с разрешением Full HD. у вас должно быть несколько версий вашего изображения в соответствующих сегментах плотности ( mdpi , hdpi и т.д.) Или просто загрузите нужный размер, если ваше изображение получено из какого-либо API, чтобы тогда вы могли сказать, что у вас есть изображение с 70dp размером, а не 70px