我有一项活动,用户可以通过意图选择照片。预期的行为如下:
这是我正在使用的纵向XML布局:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:background="@drawable/gray_background"
android:weightSum="1" >
<!-- Other controls here -->
<ImageView android:id="@+id/imgView"
android:layout_gravity="center"
android:layout_margin="5dip"
android:layout_width="fill_parent"
android:layout_height="0dip"
android:contentDescription="@string/ImageToSend"
android:adjustViewBounds="true"
android:layout_weight="1"
android:scaleType="fitCenter" />
<!-- Other controls here -->
</LinearLayout>
这是我正在使用的Landscape XML布局:
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:fillViewport="true">
<!-- Other controls are here -->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:background="@drawable/gray_background" >
<ImageView android:id="@+id/imgView"
android:layout_gravity="center"
android:layout_margin="5dip"
android:layout_width="fill_parent"
android:layout_height="0dip"
android:contentDescription="@string/ImageToSend"
android:adjustViewBounds="true"
android:layout_weight="1"
android:scaleType="fitCenter" />
<!-- Other controls are here -->
</LinearLayout>
</ScrollView>
无论我在哪个视图中,这都完美无缺。我遇到的问题是当用户旋转设备时,ImageView不再具有正确的大小。如果我从横向模式中选择图像开始,旋转看起来很好。如果我从纵向模式中选择图像开始,然后切换到横向模式,图像现在显示为1像素1像素。
任何想法?
答案 0 :(得分:1)
经过一段失败的expiraments后,我发现调用setContentView()并重做布局修复了问题。不确定这是否是我应该做的,但它已修复它。