你怎么能使用weightSum来纵向和横向扩展(我的不起作用)android

时间:2012-08-28 00:07:24

标签: android android-linearlayout

所以我有一堆图像(ImageViews),我试图根据用户的设备进行适当缩放。

我使用weightSum成功地将它们水平缩放(4张图像根据用户的屏幕均等缩放)。

我现在正试图垂直缩放每一列,以便在此示例中它占据屏幕的50%,但我没有运气。

<?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="vertical" >



<ScrollView 
    android:layout_width="fill_parent"
    android:layout_height="500dp"
    android:scrollbars="none"
    >
    <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical" 
            android:weightSum="2"
    > 






        <!--  -->
        <!--  -->
        <!-- A new column -->
        <!--  -->
        <!--  -->
        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:orientation="horizontal" 
            android:weightSum="4"
            >  
            <ImageView 
                android:layout_width="0dp"
                android:layout_height="90dp" 
                android:layout_weight="1"
                android:src="@drawable/wallpaper_1"
                android:contentDescription="@string/app_name"
                android:scaleType="fitXY"
                android:layout_margin="3dp"
                android:id="@+id/wallpaper_id_1"
             />
            <ImageView 
                android:layout_width="0dp"
                android:layout_height="90dp" 
                android:layout_weight="1"
                android:src="@drawable/wallpaper_1"
                android:contentDescription="@string/app_name"
                android:scaleType="fitXY"
                android:layout_margin="3dp"
                android:id="@+id/wallpaper_id_2"
             />
            <ImageView 
                android:layout_width="0dp"
                android:layout_height="90dp" 
                android:layout_weight="1"
                android:src="@drawable/wallpaper_1"
                android:contentDescription="@string/app_name"
                android:scaleType="fitXY"
                android:layout_margin="3dp"
                android:id="@+id/wallpaper_id_3"
             />
            <ImageView 
                android:layout_width="0dp"
                android:layout_height="90dp" 
                android:layout_weight="1"
                android:src="@drawable/wallpaper_1"
                android:contentDescription="@string/app_name"
                android:scaleType="fitXY"
                android:layout_margin="3dp"
                android:id="@+id/wallpaper_id_4"
             />
        </LinearLayout>



        <!--  -->
        <!--  -->
        <!-- A new column -->
        <!--  -->
        <!--  -->
        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:orientation="horizontal" 
            android:weightSum="4"
            >  
            <ImageView 
                android:layout_width="0dp"
                android:layout_height="90dp" 
                android:layout_weight="1"
                android:src="@drawable/wallpaper_1"
                android:contentDescription="@string/app_name"
                android:scaleType="fitXY"
                android:layout_margin="3dp"
                android:id="@+id/wallpaper_id_1"
             />
            <ImageView 
                android:layout_width="0dp"
                android:layout_height="90dp" 
                android:layout_weight="1"
                android:src="@drawable/wallpaper_1"
                android:contentDescription="@string/app_name"
                android:scaleType="fitXY"
                android:layout_margin="3dp"
                android:id="@+id/wallpaper_id_2"
             />
            <ImageView 
                android:layout_width="0dp"
                android:layout_height="90dp" 
                android:layout_weight="1"
                android:src="@drawable/wallpaper_1"
                android:contentDescription="@string/app_name"
                android:scaleType="fitXY"
                android:layout_margin="3dp"
                android:id="@+id/wallpaper_id_3"
             />
            <ImageView 
                android:layout_width="0dp"
                android:layout_height="90dp" 
                android:layout_weight="1"
                android:src="@drawable/wallpaper_1"
                android:contentDescription="@string/app_name"
                android:scaleType="fitXY"
                android:layout_margin="3dp"
                android:id="@+id/wallpaper_id_4"
             />
        </LinearLayout>




    </LinearLayout>
</ScrollView>


</LinearLayout>

之前有人处理过此事吗? 谢谢

1 个答案:

答案 0 :(得分:3)

对于ScrollView中的第一个LinearLayout,如果您使用权重,则wrap_content的高度没有意义。请改用fill_parentmatch_parent。也就是说,让ScrollView围绕这样的东西并没有多大意义,另外嵌套的权重往往会产生不良的性能。您可能需要考虑使用GridView