你如何使用 weightSum 来垂直和水平缩放(我的不起作用)android



所以我有一堆图像(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>

以前有人处理过这个吗?感谢

对于ScrollView中的第一个LinearLayout,如果使用权重,则wrap_content的高度没有意义。请改用fill_parentmatch_parent。也就是说,在类似的东西周围使用ScrollView是没有意义的,另外嵌套的权重往往会产生较差的性能。您可能需要考虑改用GridView。

最新更新