我正在开发一种电子书应用程序,我试图通过以下两种方式显示图像。当屏幕在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 这是景观。保持图像的宽高比并且滚动视图根据需要工作,但我需要使用imageview来拉伸屏幕的宽度