安卓开发——登录界面

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_41145101/article/details/82656170

项目功能需求:
1> 点击登录按钮,登录成功与否必须有对应的响应事件。
2> 点击取消按钮,可以退出程序。
3> 用户名文本框和密码框可以接收由键盘输入的数据,且分别有提示信息。(密码框显示输入的内容不显示)
4> 要有背景图片

效果图

在这里插入图片描述
一、安卓结构布局分析,外层布局一共有四层为垂直布局,第二三四层内嵌布局为水平布局。
二、线性布局概述
线性布局(LinearLayout)是一种比较常用且简单的布局方式。在这种布局中,所有的子元素都是按照垂直或水平的顺序排列在界面上。如果是垂直排列,每个子元素占一行,如果是水平排列,则每个子元素占一列。线性布局可以支持布局样式嵌套实现复杂的布局样式。

layout文件夹下面的activity_main.xml为布局文件
LinearLayout标签的常用属性有:
(1)layout_width:布局宽度(match_parent(适应屏幕宽度)、wrap_content(包裹宽度))
(2)layout_height:布局高度(match_parent(适应屏幕高度)、wrap_content(包裹高度))
(3)orietation:方向(vertical(垂直),horizontal(水平))
(4)gravity:对齐方式(left, right, center……)
(5)background:背景(颜色、图片)
三、导入背景图片

TextView为文本标签,其常用属性有:
(1)text(文本)【建议文本内容在values下的string.xml中自行定义,例:android:text="@string/login" ;其中login是string.xml文件中的name属性】

(2)textSize(字体大小)【字体大小单位一般用sp,例:android:textSize=“25sp”】
(3)textColor(字体颜色)【例:android:textColor="#ff00ff"】
EditText为可编辑文本框,其常用属性有:
(1)hint(提示信息)【例:android:hint="@string/et_username"】
(2)singleLine(单行显示)【属性:(true、false)例:android:singleLine=“true”】
(3)inputType(输入类型)【属性:(textPassword、datetime、text)例:android:inputType=“textPassword”】
Button为按钮标签
提示:为了方便添加事件,每个标签可以增加 ID 属性,格式为:android:id="@+id/bt_log"
三、按照布局分析将各个标签进行排版布局

<?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"
    android:background="@mipmap/b2"
    android:gravity="center"
    android:orientation="vertical"
    tools:context="com.example.admin.register.MainActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/login"
        android:textSize="25sp"
        android:textColor="#ff00ff"
         />
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:gravity="center_horizontal">

        <TextView
            android:id="@+id/tv_username"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/tv_username"
            android:textSize="20sp"
            android:textColor="#000000"/>

        <EditText
            android:id="@+id/et_username"
            android:layout_width="160dp"
            android:layout_height="wrap_content"
            android:hint="@string/et_username"
            android:singleLine="true"
            />

    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:gravity="center_horizontal">

        <TextView
            android:id="@+id/tv_password"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/tv_password"
            android:textSize="20sp"
            android:textColor="#000000"/>

        <EditText
            android:id="@+id/et_password"
            android:layout_width="160dp"
            android:layout_height="wrap_content"
            android:hint="@string/et_password"
            android:inputType="textPassword"
            />
    </LinearLayout>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:gravity="center_horizontal">

        <Button
            android:id="@+id/bt_log"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/bt_log"/>

        <Button
            android:id="@+id/bt_bos"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/bt_bos"/>

    </LinearLayout>

</LinearLayout>

四、打开values文件下面的string.xml文件,在文件中定义layout文件夹下面的activity_main.xml中所需文本。

<resources>
    <string name="app_name">Register</string>
    <string name="login">用户登录</string>
    <string name="tv_username">用户:</string>
    <string name="tv_password">密码:</string>
    <string name="bt_log">登录</string>
    <string name="bt_bos">取消</string>
    <string name="et_username">输入用户名</string>
    <string name="et_password">输入密码</string>
</resources>

五、打开JAVA文件夹下MainActivity文件添加事件响应。

为用户名文本框、密码框、登录按钮、取消按钮定义变量。

通过资源标识获得控件实例,因为类型不同所以要进行强制转换。

给登录按钮注册监听器,实现监听器接口,编写事件(注:使用匿名内部类)

Toast是Android系统提供的一种提醒方式,不会占用任何的屏幕空间,所以可以将一些简短的信息通过toast的方式通知给用户,这些信息过一段时间会自动消失
第一个参数:MainActivity.this,当前的上下文环境
第二个参数:要显示的字符串,就是你想在屏幕上显示的内容
第三个参数:显示的时间长短,就是这个字符串在屏幕上显示的时长。Toast默认的有两个LENGTH_LONG(长)和LENGTH_SHORT(短)。
show(); 显示

给取消按钮注册监听器,实现监听器接口,编写事件

finish(); 终止

package com.example.admin.register;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends Activity {
    private EditText et_username;
    private EditText et_password;
    private Button bt_log;
    private Button bt_bos;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //利用布局资源文件设置用户界面
        setContentView(R.layout.activity_main);

        //通过资源标识获得控件实例
        et_username = (EditText) findViewById(R.id.et_username);
        et_password = (EditText) findViewById(R.id.et_password);
        bt_log = (Button) findViewById(R.id.bt_log);
        bt_bos = (Button) findViewById(R.id.bt_bos);

        //给登录按钮注册监听器,实现监听器接口,编写事件
        bt_log.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //获取用户输入的数据
                String strUsername = et_username.getText().toString();
                String strPassword = et_password.getText().toString();

                //判断用户名和密码是否正确(为可以进行测试,将用户名和密码都定义为admin)
                if(strUsername.equals("admin") && strPassword.equals("admin")){
                    Toast.makeText(MainActivity.this,"用户名和密码正确!",Toast.LENGTH_SHORT).show();
                }else {
                    Toast.makeText(MainActivity.this,"用户名或密码错误!",Toast.LENGTH_SHORT).show();
                }

            }
        });
        //给取消按钮注册监听器,实现监听器接口,编写事件
        bt_bos.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                finish();
            }
        });
    }
}

以上就是安卓开发登录界面的的过程

展开阅读全文

没有更多推荐了,返回首页