我在设备旋转时在重复切片模式中保持背景时遇到问题。当我旋转设备时,背景从重复的图块变为拉伸的图像。
后台是一个可绘制的XML(bg.xml)。这个XML有一个位图,它是一个小的PNG文件,平铺模式设置为重复。
<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
android:src="@drawable/bgimg"
android:tileMode="repeat" />
现在片段会膨胀特定的布局。这个布局有一个ScrollView。此ScrollView的背景设置为上面提到的bg.xml文件。布局文件如下所示:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mainRoot"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<ScrollView
android:id="@+id/scrollView1"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginLeft="8dip"
android:layout_marginRight="8dip"
android:layout_weight="1"
android:background="@drawable/bg" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
text views
buttons
etc
</LinearLayout>
</ScrollView>
</LinearLayout>
如果片段首先以横向或纵向模式显示,则背景图像按预期平铺。但是,只要在显示片段时旋转设备,背景图像就会拉伸并且不再平铺。
我有一个活动(不是片段)在其主要的LinearLayout中使用相同的背景(而不是ScrollView),这个活动工作正常。
我没有任何代码来处理背景图片,只有XML文件。
如果我在Eclipse中预览片段,然后旋转,则表现良好。
布局文件位于“layout”文件夹中。我没有“layout-land”的文件夹。
我测试的设备是带有Android 2.2的三星Galaxy(GT-I9000)(我尚未在其他设备上测试过)。