Я занимаюсь разработкой своего рода приложения для электронных книг и пытаюсь отобразить изображение следующими двумя способами.Когда экран в portrait
, у меня есть изображение по горизонтали и по центру.Когда экран находится в landscape
, я хочу, чтобы изображение заполняло экран горизонтально с сохранением соотношения сторон.Поскольку изображения, которые я использую, длиннее их ширины, у меня есть ScrollView
, чтобы разрешить просмотр всего изображения.
Как мне масштабировать ImageView
, чтобы добиться этого?Я знаю, что FIT_CENTER
приближается к тому, что я хочу сделать, но, поскольку изображение уже, чем оно высокое, оно не заполняет ширину.Я попытался FIT_XY
с setAdjustViewBounds
, установленным в true, но это все еще не поддерживает мое соотношение сторон.У кого-нибудь есть идеи?
Вот мой код:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:isScrollContainer="true"
android:layout_height="wrap_content"
android:scrollbars="vertical"
android:layout_gravity="center_vertical|clip_horizontal"
android:scrollbarAlwaysDrawVerticalTrack="true"
android:id="@+id/Root">
<ScrollView android:id="@+id/ScrollView01"
android:tag="scroller"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|clip_horizontal">
<ImageView android:scaleType="fitCenter"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/imgView"
android:adjustViewBounds="true"></ImageView>
</ScrollView>
</LinearLayout>
http://i.stack.imgur.com/9J8IW.png Это на портрете.Это именно то, что я хочу.Изображение соответствует ширине экрана и соотношение сторон сохраняется.
http://i.stack.imgur.com/Kw68o.png Это в альбомной ориентации.Соотношение сторон изображения сохраняется, и вид прокрутки работает по мере необходимости, но мне нужен просмотр изображения, чтобы растянуть ширину экрана