В Android, я определил ImageView
«S layout_width
быть fill_parent
(который занимает всю ширину телефона).
Если изображение, к которому я добавляю, ImageView
больше, чем layout_width
Android, то его масштабируется, верно? Но как насчет высоты? Когда Android масштабирует изображение, сохранится ли соотношение сторон?
Что я обнаружил, так это то, что в верхней и нижней части экрана есть некоторое пустое пространство, ImageView
когда Android масштабирует изображение, которое больше, чем ImageView
. Это правда? Если да, как я могу устранить этот пробел?
setImageBitmap
такой же, какandroid:src="..."
иsetBackground...
естьandroid:background="..."
image.setImageDrawable(...)
находитсяandroid:src="..."
в XML , а также.android:adjustViewBounds
была последней частью моей головоломки, спасибо!См
android:adjustViewBounds
.источник
Для всех, кто имеет эту конкретную проблему. У вас есть то,
ImageView
что вы хотите, чтобы ширинаfill_parent
и высота пропорционально масштабировались:Добавьте эти два атрибута к вашему
ImageView
:И установите
ImageView
ширинуfill_parent
и высотуwrap_content
.Кроме того, если вы не хотите, чтобы ваше изображение было обрезано, попробуйте это:
источник
View
)». AFAICT нет другого представленияadjustViewBounds
илиscaleType
атрибутов.Если вы хотите,
ImageView
чтобы масштабирование увеличивалось и уменьшалось при сохранении правильного соотношения сторон, добавьте это в ваш XML:Добавьте это к своему коду:
Мне потребовалось некоторое время, чтобы заставить это работать, но это, кажется, работает в случаях, когда изображение меньше, чем ширина экрана и больше, чем ширина экрана, и оно не упаковывает изображение.
источник
Это сработало для меня:
источник
это решило мою проблему
источник
Ниже приведен код, работающий для масштабирования изображения в формате изображения:
источник
Взгляните на ImageView.ScaleType, чтобы контролировать и понимать, как происходит изменение размера в
ImageView
. При изменении размера изображения (при сохранении его соотношения сторон) велика вероятность того, что высота или ширина изображения станет меньшеImageView
его размеров.источник
Используйте эти свойства в ImageView, чтобы сохранить соотношение сторон:
источник
Вот как это работает для меня внутри ConstraintLayout:
Затем в коде я установил drawable как:
Это хорошо вписывается в изображение в соответствии с его соотношением сторон и сохраняет его в центре.
источник
У меня изображение меньше экрана. Чтобы он растягивался пропорционально максимуму и центрировался в представлении, мне пришлось использовать следующий код:
Имейте в виду, однако, что если у вас есть относительный макет и некоторые элементы установлены выше или ниже ImageView, они, скорее всего, будут перекрываться изображением.
источник
Если качество изображения падает: используйте
вместо
источник
Для любого из вас, кто хочет, чтобы изображение точно соответствовало изображению, с правильным масштабированием и без использования обрезки
где imageView - это представление, представляющее ваш ImageView
источник
Вы можете рассчитать ширину экрана. И вы можете масштабировать растровое изображение.
рассчитать ширину экрана и высоту масштабированного изображения по ширине экрана.
После вы можете масштабировать растровое изображение.
источник
Делая это программно, обязательно вызывайте сеттеры в правильном порядке:
источник
Если вы хотите, чтобы ваше изображение занимало максимально возможное пространство, то лучшим вариантом будет
источник
Йо не нужен код Java. Вам просто нужно:
Ключ в родительском совпадении для ширины и высоты
источник
Попробуйте использовать
android:layout_gravity
для ImageView:Пример выше работал для меня.
источник
У меня есть алгоритм для масштабирования растрового изображения, чтобы наилучшим образом соответствовать размерам контейнера, сохраняя его соотношение сторон. Пожалуйста, найдите мое решение здесь
Надеюсь, что это поможет кому-то вниз по дорожке!
источник
Я использую это:
источник
в случае использования
cardview
для округленияimageview
и исправленоandroid:layout_height
для заголовка это работало для меня, чтобы загрузить изображение сGlide
источник
Вы можете масштабировать изображение, которое также уменьшит размер вашего изображения. Для этого есть библиотека, которую вы можете скачать и использовать. https://github.com/niraj124124/Images-Files-scale-and-compress.git
Как использовать 1) Импортировать компрессор-v1.0. баночка для вашего проекта. 2) Добавьте приведенный ниже пример кода для тестирования. ResizeLimiter resize = ImageResizer.build (); resize.scale ("inputImagePath", "outputImagePath", imageWidth, imageHeight); Есть много других методов в соответствии с вашими требованиями
источник
Передайте свой ImageView и на основе высоты и ширины экрана вы можете сделать его
источник
Быстрый ответ:
источник
источник