ImageПросмотрите одно измерение, чтобы оно соответствовало свободному пространству, а затем оцените, чтобы сохранить аспектный рацион
Мне нужно что-то вроде <img width="100%" />
для Android <ImageView>
. Я имею в виду масштабирование ширины до всего доступного пространства (сокращение или увеличение ширины изображения) и автоматическое изменение высоты, чтобы сохранить соотношение сторон.
Something like <ImageView android:layout_width="match_parent" android:layout_height="auto">
Использовать android:scaleType="fitCenter"
делать с изображением то, что я хочу, но только с изображением, не изменяет высоту самого представления. Когда я устанавливаю размеры кабины в match_parent, я получу то, что хочу, но только если у меня есть только одно изображение на экране. Но мне нужны тексты под изображением.
Это единственный способ создать дочерний элемент ImageView?
Например android:adjustViewBounds="true"
ничего не делает для меня.
Ответы
Ответ 1
Я нашел, где проблема. По умолчанию реализация ImageView не может увеличить изображение. Если изображение больше ширины экрана и Android: adjustViewBounds = "true" работает правильно и регулирует высоту, чтобы сохранить пропорции изображения. Но если изображение меньше ширины экрана, оно не масштабируется.
Это причина этого кода
if (newHeight <= heightSize) {
heightSize = newHeight;
}
в классе ImageView (строка 688, API 10)
Я сделал особый ребенок ImageView, который позволяет увеличить изображение, чтобы оно соответствовало ширине.
Вот: https://gist.github.com/tprochazka/5486822