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

效果图

android 欢迎界面是 android登录界面布局_Text


android 欢迎界面是 android登录界面布局_Text_02


一、安卓结构布局分析,外层布局一共有四层为垂直布局,第二三四层内嵌布局为水平布局。

android 欢迎界面是 android登录界面布局_Text_03


二、线性布局概述

线性布局(LinearLayout)是一种比较常用且简单的布局方式。在这种布局中,所有的子元素都是按照垂直或水平的顺序排列在界面上。如果是垂直排列,每个子元素占一行,如果是水平排列,则每个子元素占一列。线性布局可以支持布局样式嵌套实现复杂的布局样式。

android 欢迎界面是 android登录界面布局_android 欢迎界面是_04


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:背景(颜色、图片)

三、导入背景图片

android 欢迎界面是 android登录界面布局_android 欢迎界面是_05


TextView为文本标签,其常用属性有:

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

android 欢迎界面是 android登录界面布局_android_06


(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中所需文本。

android 欢迎界面是 android登录界面布局_监听器_07

<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文件添加事件响应。

android 欢迎界面是 android登录界面布局_android 欢迎界面是_08


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

android 欢迎界面是 android登录界面布局_Text_09


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

android 欢迎界面是 android登录界面布局_Text_10


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

android 欢迎界面是 android登录界面布局_android_11


Toast是Android系统提供的一种提醒方式,不会占用任何的屏幕空间,所以可以将一些简短的信息通过toast的方式通知给用户,这些信息过一段时间会自动消失

第一个参数:MainActivity.this,当前的上下文环境

第二个参数:要显示的字符串,就是你想在屏幕上显示的内容

第三个参数:显示的时间长短,就是这个字符串在屏幕上显示的时长。Toast默认的有两个LENGTH_LONG(长)和LENGTH_SHORT(短)。

show(); 显示给取消按钮注册监听器,实现监听器接口,编写事件

android 欢迎界面是 android登录界面布局_监听器_12


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();
            }
        });
    }
}

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