即使看起来很简单也找不到。
我的问题很简单,我具有以下登录布局:
<?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_width="match_parent"
android:layout_height="match_parent"
tools:context=".SignupActivity"
android:orientation="vertical"
android:background="@android:color/transparent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Sign Up"
android:textSize="48sp"
android:textColor="@color/white"
android:layout_gravity="center"
android:paddingTop="30dp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="All fields are required."
android:layout_gravity="center"
android:paddingTop="100dp"/>
<android.support.v7.widget.CardView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="40dp"
app:cardElevation="20dp"
app:cardCornerRadius="15dp"
android:layout_gravity="center">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:hint="Username"
android:layout_gravity="center"
android:id="@+id/usernametext"
android:padding="15dp"
android:ems="10"
android:textAlignment="center"/>
<EditText
android:id="@+id/passwordtext"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:hint="Password"
android:layout_gravity="center"
android:padding="15dp"
android:inputType="textPassword"
android:textAlignment="center"/>
<EditText
android:id="@+id/emailtext"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:padding="15dp"
android:hint="Email"
android:textAlignment="center"
android:inputType="textEmailAddress" />
</LinearLayout>
</android.support.v7.widget.CardView>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Submit"
android:layout_gravity="center"
android:layout_marginTop="50dp"
android:id="@+id/submitButton"/>
</LinearLayout>
然后我做了另一种布局,只使用一个ImageView并将其放置在具有特定alpha值的中心。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:src="@drawable/mtrigenicon"
android:alpha="0.25"
android:scaleX="3"
android:scaleY="3" />
</RelativeLayout>
问题是,是否可以将第二个布局用作第一个布局的背景?我的意思是,要在第一个布局的所有EditText和TextViews下面使用ImageView,即使将ImageView集成在第一个布局上也可以解决方案,但我不知道如何使其在背景上以及在所有其他对象的下方。
答案 0 :(得分:1)
是的,有可能。尝试使用此布局。
在xml视图中,绘制的顺序与放置顺序相同,因此只需将图像视图放在最前面,然后在顶部绘制线性布局。像这样:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:layout_width="wrap_content"
android:gravity="center"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:src="@drawable/mtrigenicon"
android:alpha="0.25"
android:scaleX="3"
android:scaleY="3" />
Put your linear layout here
<LinearLayout></LinearLayout>
</RelativeLayout>
答案 1 :(得分:1)
首先,您可以直接将imageview作为登录布局的背景。否则,如果要将第二个布局用作任何布局的背景,则可以在android xml中使用<include
标签。
只需将您的根布局设置为FrameLayout
,您要在其中的布局包括背景布局。
赞
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout 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_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/transparent">
<include
layout="@layout/activity_background" /> //Here is the include part. Below as same as previous.
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Sign Up"
android:textSize="48sp"
android:textColor="@android:color/white"
android:layout_gravity="center"
android:paddingTop="30dp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="All fields are required."
android:layout_gravity="center"
android:paddingTop="100dp"/>
<android.support.v7.widget.CardView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="40dp"
app:cardElevation="20dp"
app:cardCornerRadius="15dp"
android:layout_gravity="center">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:hint="Username"
android:layout_gravity="center"
android:id="@+id/usernametext"
android:padding="15dp"
android:ems="10"
android:textAlignment="center"/>
<EditText
android:id="@+id/passwordtext"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:hint="Password"
android:layout_gravity="center"
android:padding="15dp"
android:inputType="textPassword"
android:textAlignment="center"/>
<EditText
android:id="@+id/emailtext"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:padding="15dp"
android:hint="Email"
android:textAlignment="center"
android:inputType="textEmailAddress" />
</LinearLayout>
</android.support.v7.widget.CardView>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Submit"
android:layout_gravity="center"
android:layout_marginTop="50dp"
android:id="@+id/submitButton"/>
</LinearLayout>
</FrameLayout>
activity_background.xml (与您的布局相同)
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:src="@drawable/canoe_water_nature_480_670"
android:alpha="0.25"
android:scaleX="3"
android:scaleY="3" />
输出
答案 2 :(得分:0)
在第一个布局中使用RelativeLayout而不是LinearLayout并将ImageView添加到其中。
<RelativeLayout 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_width="match_parent"
android:layout_height="match_parent"
tools:context=".SignupActivity"
android:background="@android:color/transparent">
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:src="@drawable/mtrigenicon"
android:alpha="0.25"
android:scaleX="3"
android:scaleY="3" />
<TextView
android:id="+id/text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Sign Up"
android:textSize="48sp"
android:layout_below="id/your_imageview_id"
android:textColor="@color/white"
android:layout_gravity="center"
android:paddingTop="30dp"/>
<TextView
android:id="+id/text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="All fields are required."
android:layout_gravity="center"
android:layout_below="id/text1"
android:paddingTop="100dp"/>
<-- your rest of the layout -->
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Submit"
android:alignParentBottom="true"
android:layout_gravity="center"
android:layout_marginTop="50dp"
android:id="@+id/submitButton"/>
</RelativeLayout>
请确保根据您的要求配置布局,因为LinearLayout会自动进行布局,但是在RelativeLayout中,您必须自己进行布局。