安卓学习:相对布局

相对布局也就是设置两个控件的相对位置,先以常规方法设置第一个控件的位置,然后第二个控件就可以就第一个控件设置相对位置,而第三个控件更是有了两个参照物,可以任选其一。以此类推向外拓展

相关属性:
相对于父容器居中或对齐
layout_centerInParent 在父容器居中
layout_centerHorizontal 在父容器水平居中
layout_centerVertical 在父容器垂直居中
layout_alignParentLeft 与父容器左对齐
layout_alignParentRight 与父容器右对齐
layout_alignParentTop 与父容器顶对齐
layout_alignParentBottom 与父容器底对齐
相对于其它控件的位置
layout_toLeftOf 在……左边
layout_toRightOf 在……右边
layout_above 在……上面
layout_below 在……下面
相对于其它控件对齐
layout_alignLeft 与……左对齐
layout_alignRight 与……右对齐
layout_alignTop 与……顶对齐
layout_alignBottom 与……底对齐
layout_alignBaseLine 与……基线对齐

相对布局:输入姓名

效果
在这里插入图片描述
实现:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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=".MainActivity">


    <TextView
        android:id="@+id/text_Name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:text="姓名:"
        android:textSize="25sp" />

    <EditText
        android:id="@+id/edi_Name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@id/text_Name"
        android:layout_toRightOf="@id/text_Name"
        android:ems="10"
        android:hint="请输入姓名" />

    <Button
        android:id="@+id/btn_qd"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/edi_Name"
        android:layout_alignParentRight="true"
        android:text="确定"
        android:textSize="25sp" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="取消"
        android:textSize="25sp"
        android:layout_alignBaseline="@id/btn_qd"
        android:layout_toLeftOf="@id/btn_qd"/>
</RelativeLayout>

相对布局:注册页面

效果:
在这里插入图片描述
实现:
activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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"
    android:background="@drawable/background"
    android:padding="20dp"
    tools:context=".MainActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/title"
        android:textSize="35sp"
        android:textColor="@android:color/holo_blue_dark"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="15dp"/>

    <TextView
        android:id="@+id/tvName"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/username"
        android:textSize="20sp"
        android:layout_marginTop="100dp" />

    <TextView
        android:id="@+id/tvPwd"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/password"
        android:textSize="20sp"
        android:layout_below="@+id/tvName"
        android:layout_marginTop="10dp"/>

    <TextView
        android:id="@+id/tvPhone"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/phone"
        android:textSize="20sp"
        android:layout_below="@+id/tvPwd"
        android:layout_marginTop="10dp"/>

    <TextView
        android:id="@+id/tvEmail"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/email"
        android:textSize="20sp"
        android:layout_below="@+id/tvPhone"
        android:layout_marginTop="10dp"/>

    <TextView
        android:id="@+id/tvSex"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/sex"
        android:textSize="20sp"
        android:layout_below="@+id/tvEmail"
        android:layout_marginTop="10dp"/>

    <TextView
        android:id="@+id/tvHobby"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hobby"
        android:textSize="20sp"
        android:layout_below="@+id/tvSex"
        android:layout_marginTop="10dp"/>

    <EditText
        android:id="@+id/edtName"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:ems="12"
        android:hint="@string/edtName"
        android:layout_marginLeft="10dp"
        android:layout_toRightOf="@+id/tvName"
        android:layout_alignBaseline="@id/tvName"/>

    <EditText
        android:id="@+id/edtPwd"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:ems="12"
        android:hint="@string/edtPwd"
        android:inputType="numberPassword"
        android:layout_below="@+id/edtName"
        android:layout_alignLeft="@+id/edtName"
        android:layout_alignBaseline="@id/tvPwd"/>

    <EditText
        android:id="@+id/edtPhone"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:ems="12"
        android:hint="@string/edtPhone"
        android:layout_below="@+id/edtPwd"
        android:layout_alignLeft="@+id/edtPwd"
        android:layout_alignBaseline="@id/tvPhone"/>

    <EditText
        android:id="@+id/edtEmail"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:ems="12"
        android:hint="@string/edtEmail"
        android:layout_below="@+id/edtPhone"
        android:layout_alignLeft="@+id/edtPhone"
        android:layout_alignBaseline="@id/tvEmail"/>

    <RadioGroup
        android:id="@+id/radioGroup"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/edtEmail"
        android:layout_alignLeft="@+id/edtEmail"
        android:layout_alignBottom ="@+id/tvSex"
        android:orientation="horizontal">
        <RadioButton
            android:id="@+id/btnMan"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text=""
            android:checked="true"/>
        <RadioButton
            android:id="@+id/btnWoman"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text=""/>
    </RadioGroup>

    <LinearLayout
        android:id="@+id/Checkbox"
        android:layout_below="@+id/radioGroup"
        android:layout_alignLeft="@+id/radioGroup"
        android:layout_alignTop="@id/tvHobby"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">
        <CheckBox
            android:id="@+id/travel"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="旅行"/>
        <CheckBox
            android:id="@+id/music"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="音乐"/>
        <CheckBox
            android:id="@+id/food"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="美食"/>
    </LinearLayout>

    <Button
        android:id="@+id/btnSubmit"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/tvHobby"
        android:layout_marginTop="10dp"
        android:onClick="doSubmit"
        android:text="提交"/>

    <Button
        android:id="@+id/btnReset"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/btnSubmit"
        android:layout_alignRight="@+id/edtEmail"
        android:onClick="doReset"
        android:text="重置"/>
</RelativeLayout>

ActivityMain.java

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {
    private EditText edtName;
    private EditText edtPwd;
    private EditText edtPhone;
    private EditText edtEmail;
    private RadioGroup radioGroup;
    private RadioButton btnMan;
    private String sex = "男";
    private CheckBox travel, music, food;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //获取控件实例
        edtName = findViewById(R.id.edtName);
        edtPwd = findViewById(R.id.edtPwd);
        edtPhone = findViewById(R.id.edtPhone);
        edtEmail = findViewById(R.id.edtEmail);
        radioGroup = findViewById(R.id.radioGroup);
        travel = findViewById(R.id.travel);
        music = findViewById(R.id.music);
        food = findViewById(R.id.food);
        btnMan = findViewById(R.id.btnMan);

        //单选按钮
        radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup group, int checkedId) {
                switch (checkedId) {
                    case R.id.btnMan:
                        sex = "男";
                        break;
                    case R.id.btnWoman:
                        sex = "女";
                        break;
                }
            }
        });
    }


    public void doSubmit(View view) {
        String text = "";
        //获取复选框的值
        if (travel.isChecked()) {
            text += travel.getText().toString()+"\u00A0";
        }
        if (music.isChecked()) {
            text += music.getText().toString()+"\u00A0";
        }
        if (food.isChecked()) {
            text += food.getText().toString();
        }
        if (text == "") {
            text = "无爱好";
        }

        //保存用户输入数据
        String strName = edtName.getText().toString().trim();
        String strPwd = edtPwd.getText().toString().trim();
        String strPhone = edtPhone.getText().toString().trim();
        String strEmail = edtEmail.getText().toString().trim();

        //利用吐司提示用户注册情况
        Toast.makeText(MainActivity.this, "注册成功", Toast.LENGTH_SHORT).show();//LENGTH_SHORT表示登录时间长度
        //创建显示意图
        Intent intent = new Intent(MainActivity.this, MainActivity2.class);
        //创建数据包封装数据(封装)
        Bundle date = new Bundle();
        date.putString("name", strName);
        date.putString("pwd", strPwd);
        date.putString("phone", strPhone);
        date.putString("email", strEmail);
        date.putString("sex", sex);
        date.putString("like", text);

        //通过意图携带数据包
        intent.putExtras(date);
        //按照意图启动目标组件
        startActivity(intent);
    }


    public void doReset(View view) {
        //清空输入框
        edtName.setText("");
        edtPwd.setText("");
        edtPhone.setText("");
        edtEmail.setText("");

        //单选按钮重置
        btnMan.setChecked(true);
        //清空复选框
        travel.setChecked(false);
        music.setChecked(false);
        food.setChecked(false);
    }
}

创建显示界面ActivityMain2.java
在这里插入图片描述
在这里插入图片描述
activity_main2.xml

<?xml version="1.0" encoding="utf-8"?>
<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=".MainActivity2">

    <TextView
        android:id="@+id/tvMessage"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:text=""
        android:textColor="@color/colorPrimaryDark"
        android:textSize="25sp"/>
</LinearLayout>

ActivityMain2.java

import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView;

import androidx.appcompat.app.AppCompatActivity;

public class MainActivity2 extends AppCompatActivity {
    protected TextView tvMessage;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);
        //通过资源标识符获取控件实例
        tvMessage = findViewById(R.id.tvMessage);
        //获取意图
        Intent intent = getIntent();
        //判断意图是否为空
        if (intent != null) {
            //获取意图携带数据包(封装)
            Bundle date = intent.getExtras();
            String strName = date.getString("name");
            String strPwd = date.getString("pwd");
            String strPhone = date.getString("phone");
            String strEmail = date.getString("email");
            String sex = date.getString("sex");
            String text = date.getString("like");
            //拼接用户信息
            String message = "注册成功!\n用户名:" + strName + "\n密码:" + strPwd + "\n电话:"
                    + strPhone + "\n邮箱:" + strEmail+"\n性别:"+sex+"\n爱好:"+text;
            //设置标签属性,显示用户信息
            tvMessage.setText(message);
        }
    }
}

string.xml

<resources>
    <string name="app_name">相对布局</string>
    <string name="title">请输入注册信息</string>
    <string name="username">用户名:</string>
    <string name="password">密码:</string>
    <string name="phone">电话:</string>
    <string name="email">邮箱:</string>
    <string name="sex">性别:</string>
    <string name="hobby">爱好:</string>
    <string name="edtName">请输入用户名</string>
    <string name="edtPwd">请输入密码</string>
    <string name="edtPhone">请输入电话号码</string>
    <string name="edtEmail">请输入电子邮箱</string>
</resources>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值