移动应用开发之路 05 Android Studio 简单登录界面制作

这篇具有很好参考价值的文章主要介绍了移动应用开发之路 05 Android Studio 简单登录界面制作。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

学校开了一门移动应用开发课程,我一开始兴趣盎然,但是看到使用的环境是 Java 8 的时候心就凉了一半,在询问老师的意见之后决定使用现在比较常用的Android Studio完成学习,特此记录自学之路。

这篇是一个总结性质的文章,主要为了熟练运用之前讲过的几个UI控件。小项目主要包括完成登录界面,校验输入是否为空,判断输入是否为正确用户名密码,输入成功后出现加载进度条。

效果图

效果先行

移动应用开发之路 05 Android Studio 简单登录界面制作

代码

代码如下,注释比较详细了,文案解释就不太多。

目录

文件目录如下图所示

移动应用开发之路 05 Android Studio 简单登录界面制作
主要就是针对这三个被选中的文件。

AndroidManifest.xml

这个主要为配置文件,里面主要包括app桌面图标生成,app刘海等等。

AndroidManifest.xml

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

    <application
        android:allowBackup="true"
        android:dataExtractionRules="@xml/data_extraction_rules"
        android:fullBackupContent="@xml/backup_rules"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/Theme.MyApplication"
        tools:targetApi="31">
        <activity
            android:name=".ProgressBarActivity"
            android:exported="false" />
        <activity
            android:name=".ButtonActivity"
            android:exported="false" />
        <activity
            android:name=".TextActivity"
            android:exported="false" />
        <activity
            android:name=".MainActivity"
            android:exported="true">
            <intent-filter>

                <!-- 启动界面 -->
                <action android:name="android.intent.action.MAIN" />
                <!-- 在应用列表形成图标 -->
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

unviews_test.xml

这个几句是各种控件,主体思路就是线性布局全局水平居中,一点一点往下叠。其实没用到什么操作,如果对各个控件的功能还不太了解,移步这里

我们这里用的是最传统的线性布局,相当于一条竖着的线从上到下把所有的控件(包括TextView、ImageView、ProgressBar、EditText、ImageButton等等)都穿起来。

unviews_test.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@mipmap/bg"
    android:gravity="center_horizontal">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Sign Up"
        android:textSize="40sp"
        android:textColor="#dddddd"
        android:layout_marginTop="40dp"/>
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="It's a love story\nBaby just say yes"
        android:textSize="24sp"
        android:textColor="#dddddd"
        android:gravity="center"
        android:layout_marginTop="30dp"/>
    <ImageView
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:src="@mipmap/ic_launcher"
        android:layout_margin="30dp"/>
    <ProgressBar
        android:id="@+id/pro_bar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        style="?android:attr/progressBarStyleHorizontal"
        android:visibility="invisible"
        android:layout_margin="10dp"/>
    <EditText
        android:id="@+id/username"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="30dp"
        android:layout_marginRight="30dp"
        android:gravity="center"
        android:textColorHint="#000000"
        android:hint="User Name"
        android:textSize="20sp"
        android:inputType="text"/>
    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="30dp"
        android:layout_marginRight="30dp"
        android:layout_marginTop="20dp"
        android:hint="Email Address"
        android:textSize="20sp"
        android:gravity="center"
        android:textColorHint="#000000"
        android:inputType="numberSigned|numberDecimal"/>
    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="30dp"
        android:layout_marginRight="30dp"
        android:layout_marginTop="20dp"
        android:gravity="center"
        android:textColorHint="#000000"
        android:hint="Phone"
        android:textSize="20sp"
        android:inputType="phone"/>
    <EditText
        android:id="@+id/pwd"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="30dp"
        android:layout_marginRight="30dp"
        android:layout_marginTop="20dp"
        android:hint="Password"
        android:textSize="20sp"
        android:gravity="center_horizontal"
        android:textColorHint="#000000"
        android:inputType="textPassword"
        android:maxLength="15"/>

    <ImageButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Register"
        android:layout_marginLeft="30dp"
        android:layout_marginRight="30dp"
        android:layout_marginTop="30dp"
        android:src="@mipmap/button"
        android:onClick="register"/>


</LinearLayout>

MainActivity.java

这个就是判断下输入是否正确,然后再建立一个线程控制一下进度条的速度。

一般来说,涉及到动画的都会相对复杂一点。在安卓里面,动画需要利用相应的类中的不同方法才能跑起来。

另外,还需要注意手机触屏的焦点问题。

MainActivity.java文章来源地址https://www.toymoban.com/news/detail-475523.html

package com.example.myapplication;

import androidx.appcompat.app.AppCompatActivity;

import android.graphics.Color;
import android.os.Bundle;
import android.security.identity.PersonalizationData;
import android.util.Log;
import android.view.CollapsibleActionView;
import android.view.View;
import android.view.ViewGroup;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.ProgressBar;
import android.widget.Toast;

import java.util.Random;

public class MainActivity extends AppCompatActivity {
    // Activity: 是一个类,AppCompatActivity也是算是Activity类。类似于一个可视化界面
    @Override   // 表示这个是重写,只要打开窗口,指定先执行它,所以有点类似于初始化代码
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.uiviews_test);
    }

    public void register(View v){
        // 判空
        EditText name = findViewById(R.id.username);
        EditText pwd = findViewById(R.id.pwd);
        ProgressBar pro_bar = findViewById(R.id.pro_bar);
        // 记得toString
        String name_str = name.getText().toString();
        String pwd_str = pwd.getText().toString();
        if (name_str.equals("")||pwd_str.equals("")){
            // 无焦点提示
            // makeText(环境上下文, 提示性文本, 提示持续时间的长短)
            // 别忘了show
            Toast.makeText(this, "姓名或密码不能为空", Toast.LENGTH_LONG).show();
        }else if(!name_str.equals("Taylor")||!pwd_str.equals("1129")){
            Toast.makeText(this, "用户名密码错误,请重新输入", Toast.LENGTH_LONG).show();
            name.setText("");
            pwd.setText("");
        }else {
            pro_bar.setVisibility(View.VISIBLE);
            new Thread(){
                // 随机速度跑进度条
                public void run(){
                    Random ran = new Random();
                    for(int i=0; i<=100;i++){
                        pro_bar.setProgress(i);
//                        Log.e("TAG", String.valueOf(ran.nextInt(50)));
                        try {
                            // 这里小小调皮一下,随机数越到后面越慢,模仿最后99%一直到不了
                            Thread.sleep(ran.nextInt(5)*i);
                        } catch (InterruptedException e) {
                            e.printStackTrace();
                        }
                    }
                }
            }.start();
        }


    }
}

到了这里,关于移动应用开发之路 05 Android Studio 简单登录界面制作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Android移动应用开发——实验七——小鸭子报数(广播)

        掌握布局与控件的使用方法     掌握有序广播机制,根据广播接收者的优先级顺序接收广播     掌握广播拦截机制 通过合理布局来搭建界面,界面效果如下图所示。采用有序广播方式,将下方小鸭子优先级分别设置1000、800、600。 1、当点击大喇叭后弹出“有序

    2024年02月09日
    浏览(91)
  • 如何开发移动应用:iOS和Android的比较

    移动应用开发领域一直以来都备受关注,而iOS和Android作为两大主要的移动操作系统,各自拥有强大的生态系统和开发工具。在本文中,我们将比较iOS和Android移动应用开发的关键方面,以帮助开发者选择合适的平台,或者了解在不同平台上开发应用时需要考虑的因素。 iOS iO

    2024年02月07日
    浏览(28)
  • Flutter 开发者工具 Android Studio 开发Flutter应用

    Flutter 开发者工具 在 Android Studio 开发Flutter应用 🔥 Android Studio 版本更新 🔥 Android Studio Check for Update Connection failed ​ 解决方案 ​    ​  🔥 编辑代码,和查看问题 🔥  Dart 插件 可以做到如下几点 :  语法高亮显示。 基于多种类型分析的代码补全。 定位到类型的声明(

    2024年02月15日
    浏览(43)
  • 移动开发最佳实践:为 Android 和 iOS 构建成功应用的策略

    您可以将本文作为指南,确保您的应用程序符合可行的最重要标准。请注意,这份清单远非详尽无遗;您可以加以利用,并添加一些自己的见解。 要制作一个成功的应用程序,你需要了解你是为谁制作的。从创建用户角色开始–基于人口统计、行为模式、动机和目标,对理想

    2024年02月13日
    浏览(17)
  • Flutter与Android开发:构建跨平台移动应用的新选择

    本文内容提纲如下: 介绍Flutter技术:Flutter是一种由Google推出的开源UI工具包,用于构建高性能、跨平台的移动应用。文章将介绍Flutter的基本概念、特点和优势,包括其快速的开发速度、一致的用户界面和丰富的UI组件库等。 Flutter与Android开发的对比:文章将对比Flutter与传统

    2023年04月21日
    浏览(32)
  • Android应用开发入门:从Android Studio环境设置到Java编程基础

    目录 介绍 步骤一:设置Android Studio环境 步骤二:了解Android Studio界面

    2024年02月13日
    浏览(22)
  • Android移动应用开发——开灯与关灯(小兔子)——实验八——服务的启动与关闭

        掌握布局和基本控件的属性功能及使用方法     掌握startService()方法与stopService()方法启动和关闭服务 通过线性布局和相对布局来搭建一个界面,界面效果如下图所示。当点击“关灯”按钮后,转变到第二个状态。在第二个状态中,点击“开灯”按钮后,跳转回第一

    2024年02月05日
    浏览(21)
  • 超简单演示Android地图开发应用实例

    手机地图开发应用广泛,本实例演示了在手机上显示各种地图的方法。比如3D矢量地图、卫星地图、交通地图、夜景地图等在手机上的显示。可以根据手势自由做地图缩放,地图旋转等操作。代码简洁、实用,可以帮助你快速上手地图开发。 一、实现效果图: 二、实现过程

    2024年02月11日
    浏览(19)
  • Android studio TCP网络调试助手应用开发(支持TCP Server与Client切换)

            在前几篇的文章中带大家完成了 基于TCP的物联网安卓应用开发 ,教程内容是创建了一个 TCP客户端并连接服务器完成数据通信的过程 ,后不久又发布了一个 ESP8266创建TCP 服务器与安卓的客户端进行通信 的一个文章,当时在文章中提到“如果大家有需要将ESP8266配置

    2024年02月06日
    浏览(28)
  • 【移动开发学习】 Android Studio 编写一个简单的微信界面

    Android Studio简单还原微信ui 目标 实现3-4个tab的切换效果 技术需求 activity, xml, fragment, recyclerview 成果展示 其中联系人界面通过recyclerview实现了可以滑动列表           仓库地址 https://github.com/SmileEX/wecaht.git 实现过程 主要ui 第一步我们首先把微信的ui主体做出来,即这三个部分

    2024年02月08日
    浏览(24)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包