我的目标是在屏幕上的一行显示6张图片(1张图片,6张)。我的方法是将RelativeLayout嵌套在LinearLayout中。我的问题是,当我处于'肖像'模式时,我无法看到我的所有图像。我调整图像的次数越多,我可以适应的图像就越多,但是我不希望它变得更小。我认为默认情况下,它只会包装它不适合的东西,但似乎并非如此。没有自动重新调整大小?另外,如何手动确定每张图像之间的空间大小?谢谢!
答案 0 :(得分:0)
基本上,您需要为您的应用提供两个不同的xml文件,一个用于纵向,一个用于横向:Providing Resources。 android会根据方向选择合适的xml文件。
这个ImageView.ScaleType解释了不同的缩放样式
以下是我的建议:
res/layout-land/main.xml
<?xml version="1.0" encoding="utf-8" ?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal">
<ImageView
android:id="@+id/debris_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scaleType="fitCenter"
android:weight="1"
android:src="@drawable/image1"
</ImageView
... repeat 5 more times ...
</LinearLayout>
weight
元素应该使它们全部合适但可能与scaleType
发生冲突。无论如何应该为你的风景做到这一点,对于肖像,你可以制作它以便有两行图像,或者你可以使用horizontalScrollView
如下:
res/layout-port/main.xml
<?xml version="1.0" encoding="utf-8" ?>
<HorizontalScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal">
<ImageView
android:id="@+id/debris_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scaleType="fitCenter"
android:weight="1"
android:padding="15dp"
android:src="@drawable/image1"
</ImageView
... repeat 5 more times ...
</LinearLayout>
</HorizontalScrollView>
实际上,你可以只使用肖像main.xml
作为唯一的布局文件,只需将其水平滚动,无论方向如何。您可能需要在我正在工作的情况下更改肖像main.xml
中的某些时间,并且我不确定weight
与horizontalScrollView
的合作程度
就每个元素之间的空格而言,你可以像上面一样使用android:padding。