Android - 垂直和水平WeightSum

时间:2017-04-20 09:04:01

标签: android layout

我想在屏幕上放4个图像分隔象限,并在每张图片的顶部放置一些文字。

我知道如何在水平或垂直方向使用权重,不是两种情况。

WeightSum

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.tiagosilva.amob_android.ProductsFragment"
android:background="@color/AMOB_gray"
android:weightSum="2"
android:orientation="vertical"
android:padding="15dp">

<ImageView
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1"
    android:id="@+id/img_tube_bending"
    android:src="@drawable/fully_electric"
    android:layout_marginRight="5dp"/>

<ImageView
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1"
    android:id="@+id/img_section_bending_rolls"
    android:src="@drawable/section_bending_rolls"
    android:layout_marginLeft="5dp"/>

3 个答案:

答案 0 :(得分:0)

WeightSum work with ParentLayout like..
<LinearLayout
height="match_parent"
width="match_parent"
orientation="vertical">
//if orientation is Landescape weight of child will work horizontally like
<ImageView`enter code here`
width="match_parent"
height="0dp"
layout_weight=".25"  //this layout will tahe 25% of the parent layout in height
</LinearLayout>

答案 1 :(得分:0)

使用GridLayout可以更轻松地完成您想要的任务,而不是使用LinearLayout。这是一个关于如何以象限方式放置4个图像的简单示例:

<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/GridLayout1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:columnCount="2"
android:rowCount="2"
android:orientation="horizontal"
tools:context=".GridXMLActivity">
<ImageView
    android:id="@+id/image1"
    android:layout_width="0dp"
    android:src="@drawable/Sun3"
    android:layout_columnWeight="1"
    android:adjustViewBounds="true"
    />

<ImageView
    android:id="@+id/image2"
    android:layout_width="0dp"
    android:src="@drawable/Sun3"
    android:layout_columnWeight="1"
    android:adjustViewBounds="true"
    />

<ImageView
    android:id="@+id/image3"
    android:layout_width="0dp"
    android:src="@drawable/Sun3"
    android:layout_columnWeight="1"
    android:adjustViewBounds="true"/>

<ImageView
    android:id="@+id/image4"
    android:layout_width="0dp"
    android:src="@drawable/Sun3"
    android:layout_columnWeight="1"
    android:adjustViewBounds="true"/>
</GridLayout>

希望它有所帮助。

答案 2 :(得分:0)

我创建了一个类似于你期望的xml布局。 TextView超过ImageView

。{
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="5dp">
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
    <LinearLayout
        android:orientation="vertical"
        android:layout_weight="1"
        android:layout_width="0dp"
        android:layout_height="wrap_content">
        <TextView
            android:text="Text 1"
            android:gravity="center"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />
        <ImageView
            android:layout_gravity="center"
            android:src="@drawable/ic_launcher"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
    </LinearLayout>
    <LinearLayout
        android:orientation="vertical"
        android:layout_weight="1"
        android:layout_width="0dp"
        android:layout_height="wrap_content">
        <TextView
            android:text="Text 2"
            android:gravity="center"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />
        <ImageView
            android:layout_gravity="center"
            android:src="@drawable/ic_launcher"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
    </LinearLayout>
</LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <LinearLayout
            android:orientation="vertical"
            android:layout_weight="1"
            android:layout_width="0dp"
            android:layout_height="wrap_content">
            <TextView
                android:text="Text 3"
                android:gravity="center"
                android:layout_width="match_parent"
                android:layout_height="wrap_content" />
            <ImageView
                android:layout_gravity="center"
                android:src="@drawable/ic_launcher"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" />
        </LinearLayout>
        <LinearLayout
            android:orientation="vertical"
            android:layout_weight="1"
            android:layout_width="0dp"
            android:layout_height="wrap_content">
            <TextView
                android:text="Text 4"
                android:gravity="center"
                android:layout_width="match_parent"
                android:layout_height="wrap_content" />
            <ImageView
                android:layout_gravity="center"
                android:src="@drawable/ic_launcher"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" />
        </LinearLayout>
    </LinearLayout>
</LinearLayout>