如何使用线性布局添加背景图像作为根布局并具有嵌套线性布局

Posted

技术标签:

【中文标题】如何使用线性布局添加背景图像作为根布局并具有嵌套线性布局【英文标题】:How to add background image with Linear Layout as a root layout and having nested Linear Layout 【发布时间】:2021-04-12 13:35:21 【问题描述】:

我正在尝试添加具有线性布局的背景图像作为根布局 [查看层次图以供参考。] 我曾尝试使用相对布局作为根布局,但它与嵌套的线性布局重叠。 使用线性布局作为根布局时,它只显示在底部。

XML 代码

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_
    android:layout_
    android:orientation="vertical">

<LinearLayout
    android:id="@+id/line1"
    android:layout_
    android:layout_
    android:orientation="horizontal">

    <LinearLayout
        android:layout_weight="1"
        android:layout_
        android:layout_
        android:orientation="vertical"
        tools:context=".MainActivity">

        <TextView
            android:layout_
            android:layout_
            android:layout_gravity="center_horizontal"
            android:layout_marginTop="5dp"
            android:textSize="26sp"
            android:textStyle="bold"
            android:text="Team A" />

        <TextView
            android:id="@+id/team_a_score"
            android:layout_
            android:layout_
            android:layout_gravity="center_horizontal"
            android:layout_marginTop="5dp"
            android:text="0"
            android:textSize="40sp"
            android:textStyle="bold"/>

        <Button
            android:layout_
            android:layout_
            android:layout_marginTop="20dp"
            android:onClick="add3forA"
            android:layout_marginLeft="10dp"
            android:layout_marginRight="10dp"
            android:text="+3 Points" />


        <Button
            android:layout_
            android:layout_
            android:layout_marginTop="20dp"
            android:onClick="add2forA"
            android:layout_marginLeft="10dp"
            android:layout_marginRight="10dp"
            android:text="+2 Points" />

        <Button
            android:layout_
            android:layout_
            android:layout_marginTop="20dp"
            android:onClick="add1forA"
            android:layout_marginLeft="10dp"
            android:layout_marginRight="10dp"
            android:text="Free Throw" />
    </LinearLayout>

    <LinearLayout
        android:layout_weight="1"
        android:layout_
        android:layout_
        android:orientation="vertical"
        tools:context=".MainActivity">

        <TextView
            android:layout_
            android:layout_
            android:layout_gravity="center_horizontal"
            android:layout_marginTop="5dp"
            android:textSize="26sp"
            android:textStyle="bold"
            android:text="Team B" />

        <TextView
            android:id="@+id/team_b_score"
            android:layout_
            android:layout_
            android:layout_gravity="center_horizontal"
            android:textSize="40sp"
            android:textStyle="bold"
            android:text="0" />

        <Button
            android:layout_
            android:layout_
            android:layout_marginTop="20dp"
            android:onClick="add3forB"
            android:layout_marginLeft="10dp"
            android:layout_marginRight="10dp"
            android:text="+3 Points" />


        <Button
            android:layout_
            android:layout_
            android:layout_marginTop="20dp"
            android:onClick="add2forB"
            android:layout_marginLeft="10dp"
            android:layout_marginRight="10dp"
            android:text="+2 Points" />

        <Button
            android:layout_
            android:layout_
            android:layout_marginTop="20dp"
            android:onClick="add1forB"
            android:layout_marginLeft="10dp"
            android:layout_marginRight="10dp"
            android:text="Free Throw" />
    </LinearLayout>

</LinearLayout>
    <Button
        android:layout_
        android:layout_
        android:text="Reset"
        android:layout_gravity="center_horizontal"
        android:layout_marginTop="40dp"
        android:onClick="reset"/>
</LinearLayout> 

查看层次结构图

【问题讨论】:

问题是在哪里放置背景图片以填充活动的背景? 【参考方案1】:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_
    android:layout_
    android:orientation="vertical"
    android:background="@drawable/image">

    <LinearLayout
        android:id="@+id/line1"
        android:layout_
        android:layout_
        android:orientation="horizontal">

        <LinearLayout
            android:layout_weight="1"
            android:layout_
            android:layout_
            android:orientation="vertical"
            tools:context=".MainActivity">

            <TextView
                android:layout_
                android:layout_
                android:layout_gravity="center_horizontal"
                android:layout_marginTop="5dp"
                android:textSize="26sp"
                android:textStyle="bold"
                android:text="Team A" />

            <TextView
                android:id="@+id/team_a_score"
                android:layout_
                android:layout_
                android:layout_gravity="center_horizontal"
                android:layout_marginTop="5dp"
                android:text="0"
                android:textSize="40sp"
                android:textStyle="bold"/>

            <Button
                android:layout_
                android:layout_
                android:layout_marginTop="20dp"
                android:onClick="add3forA"
                android:layout_marginLeft="10dp"
                android:layout_marginRight="10dp"
                android:text="+3 Points" />


            <Button
                android:layout_
                android:layout_
                android:layout_marginTop="20dp"
                android:onClick="add2forA"
                android:layout_marginLeft="10dp"
                android:layout_marginRight="10dp"
                android:text="+2 Points" />

            <Button
                android:layout_
                android:layout_
                android:layout_marginTop="20dp"
                android:onClick="add1forA"
                android:layout_marginLeft="10dp"
                android:layout_marginRight="10dp"
                android:text="Free Throw" />
        </LinearLayout>

        <LinearLayout
            android:layout_weight="1"
            android:layout_
            android:layout_
            android:orientation="vertical"
            tools:context=".MainActivity">

            <TextView
                android:layout_
                android:layout_
                android:layout_gravity="center_horizontal"
                android:layout_marginTop="5dp"
                android:textSize="26sp"
                android:textStyle="bold"
                android:text="Team B" />

            <TextView
                android:id="@+id/team_b_score"
                android:layout_
                android:layout_
                android:layout_gravity="center_horizontal"
                android:textSize="40sp"
                android:textStyle="bold"
                android:text="0" />

            <Button
                android:layout_
                android:layout_
                android:layout_marginTop="20dp"
                android:onClick="add3forB"
                android:layout_marginLeft="10dp"
                android:layout_marginRight="10dp"
                android:text="+3 Points" />


            <Button
                android:layout_
                android:layout_
                android:layout_marginTop="20dp"
                android:onClick="add2forB"
                android:layout_marginLeft="10dp"
                android:layout_marginRight="10dp"
                android:text="+2 Points" />

            <Button
                android:layout_
                android:layout_
                android:layout_marginTop="20dp"
                android:onClick="add1forB"
                android:layout_marginLeft="10dp"
                android:layout_marginRight="10dp"
                android:text="Free Throw" />
        </LinearLayout>

    </LinearLayout>
    <Button
        android:layout_
        android:layout_
        android:text="Reset"
        android:layout_gravity="center_horizontal"
        android:layout_marginTop="40dp"
        android:onClick="reset"/>
</LinearLayout>

android:background="@drawable/image"将此行添加到您的根布局中

【讨论】:

它正在工作,感谢您消除我的疑问 :)

以上是关于如何使用线性布局添加背景图像作为根布局并具有嵌套线性布局的主要内容,如果未能解决你的问题,请参考以下文章

Android:具有不同alpha值的嵌套线性布局

如何从线性布局中删除边框线

线性布局中的背景图像

如何在嵌套线性布局中使 imageButton 的高度占屏幕尺寸的 25%。 Android XML 横向布局

以编程方式将图像添加到线性布局

Android LinearLayout线性布局详解