Android应用开发基础课程--15天做一个合格的Android程序员(第二天)初始化+登录 demo

课程目录

Android应用开发基础课程--15天做一个合格的Android程序员--课程目录

前面我们已经初步学习了简单的界面开发,那么我们来做一个demo当做今天的作业。

初始化+登录

初始化+登录页面基本绝大部分的应用都有这两个页面,我们今天来简单实现这两个页面的交互。

首先是写界面。

界面

初始化界面activity_start.xml,一个欢迎语句  再加一个加载框,就是简单的初始化页面:

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="欢迎进入我的第一个应用"
        android:textColor="@color/colorAccent"
        android:textSize="22sp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
    <ProgressBar
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"/>

</android.support.constraint.ConstraintLayout>

登录页面activity_login.xml  app图标+两个输入框+一个登录按钮就是简单的登录页面。

<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:id="@+id/activity_login"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/colorPrimary">

    <ImageView
        android:id="@+id/iv_icon"
        android:layout_width="90dp"
        android:layout_height="90dp"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="60dp"
        android:scaleType="centerCrop"
        android:src="@mipmap/ic_launcher" />

    <TextView
        android:id="@+id/tv_title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="160dp"
        android:text="用户登录"
        android:textColor="@android:color/white"
        android:textSize="23sp"
        android:typeface="monospace" />

    <RelativeLayout
        android:id="@+id/rl_userName"
        android:layout_width="wrap_content"
        android:layout_height="60dp"
        android:layout_below="@id/tv_title"
        android:layout_marginTop="40dp"
        android:background="@android:color/white">

        <ImageView
            android:id="@+id/iv_userIconName"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:paddingBottom="15dp"
            android:paddingLeft="30dp"
            android:paddingTop="15dp"
            android:background="@color/colorAccent" />

        <View
            android:id="@+id/viewName"
            android:layout_width="1dip"
            android:layout_height="20dp"
            android:layout_centerVertical="true"
            android:layout_marginLeft="10dp"
            android:layout_toRightOf="@id/iv_userIconName"
            android:background="@color/colorAccent" />

        <EditText
            android:id="@+id/et_userName"
            android:layout_width="match_parent"
            android:layout_height="30dp"
            android:layout_centerVertical="true"
            android:layout_marginLeft="10dp"
            android:layout_toRightOf="@id/viewName"
            android:background="@null"
            android:ems="19"
            android:hint="  用户名"
            android:textCursorDrawable="@android:color/white"
            android:textSize="15sp" />


    </RelativeLayout>

    <RelativeLayout
        android:id="@+id/rl_userPassword"
        android:layout_width="wrap_content"
        android:layout_height="60dp"
        android:layout_below="@id/rl_userName"
        android:layout_marginTop="1dp"
        android:background="@android:color/white">

        <ImageView
            android:id="@+id/iv_userIconPwd"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:paddingBottom="15dp"
            android:paddingLeft="30dp"
            android:paddingTop="15dp"
            android:background="@color/colorAccent" />

        <View
            android:id="@+id/viewPwd"
            android:layout_width="1dip"
            android:layout_height="20dp"
            android:layout_centerVertical="true"
            android:layout_marginLeft="10dp"
            android:layout_toRightOf="@id/iv_userIconPwd"
            android:background="@color/colorAccent" />

        <EditText
            android:id="@+id/et_password"
            android:layout_width="match_parent"
            android:layout_height="30dp"
            android:layout_centerVertical="true"
            android:layout_marginLeft="10dp"
            android:layout_toRightOf="@id/viewPwd"
            android:background="@null"
            android:drawablePadding="5dp"
            android:ems="19"
            android:hint=" 密码"
            android:inputType="textPassword"
            android:textCursorDrawable="@android:color/white"
            android:textSize="15sp" />


    </RelativeLayout>


    <Button
        android:id="@+id/btn_login"
        android:layout_width="340dp"
        android:layout_height="wrap_content"
        android:layout_below="@id/rl_userPassword"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="20dp"
        android:background="@color/colorAccent"
        android:gravity="center"
        android:padding="10dp"
        android:text="登录"
        android:textColor="#fff"
        android:textSize="18sp" />

</RelativeLayout>

业务逻辑

新建两个activity,StartActivity和LoginActivity。

初始化页面要实现的逻辑就是延时两秒打开登录页面关闭自己。

延时这里使用的是Handler,这个点后面再讲,大概先知道怎么用就行。

package com.example.administrator.hello.activity;

import android.content.Intent;
import android.os.Handler;

import com.example.administrator.hello.R;


public class StartActivity extends BaseActivity {

    @Override
    protected void initView() {
        setContentView(R.layout.activity_start);
    }

    @Override
    protected void findView() {

    }

    @Override
    protected void addAction() {
        doNextThread();
    }

    private void doNextThread() {
        new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
                goToLogin();
            }
        }, 2000);

    }

    private void goToLogin() {
        Intent in = new Intent(StartActivity.this, LoginActivity.class);
        startActivity(in);
        finish();
    }
}

登录页面的逻辑就是给登录按钮添加点击事件,点击后跳转到主页。

package com.example.administrator.hello.activity;

import android.content.Intent;
import android.view.View;

import com.example.administrator.hello.MainActivity;
import com.example.administrator.hello.R;

public class LoginActivity extends BaseActivity {

    @Override
    protected void initView() {
        setContentView(R.layout.activity_login);
    }

    @Override
    protected void findView() {

    }

    @Override
    protected void addAction() {
        findViewById(R.id.btn_login).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                goToMain();
            }
        });
    }

    private void goToMain() {
        Intent in = new Intent(LoginActivity.this, MainActivity.class);
        startActivity(in);
        finish();
    }
}

manifest文件配置

首先要修改app的入口,并将新增的activity注册好:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.administrator.hello">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".activity.StartActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <activity android:name=".activity.LayoutAndWidgetDemoActivity" />
        <activity android:name=".MainActivity" />
        <activity android:name=".activity.LoginActivity" />
    </application>

</manifest>

demo到此完成,运行一下。

自己再根据所学玩点花样,今天的任务就到此结束。

猜你喜欢

转载自blog.csdn.net/ovejur/article/details/89024326