RelativeLayout中的ImageViews,嵌套在LinearLayout中

时间:2011-03-09 20:26:09

标签: android layout imageview relativelayout

我的目标是在屏幕上的一行显示6张图片(1张图片,6张)。我的方法是将RelativeLayout嵌套在LinearLayout中。我的问题是,当我处于'肖像'模式时,我无法看到我的所有图像。我调整图像的次数越多,我可以适应的图像就越多,但是我不希望它变得更小。我认为默认情况下,它只会包装它不适合的东西,但似乎并非如此。没有自动重新调整大小?另外,如何手动确定每张图像之间的空间大小?谢谢!

1 个答案:

答案 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中的某些时间,并且我不确定weighthorizontalScrollView的合作程度

就每个元素之间的空格而言,你可以像上面一样使用android:padding