Android学习之登陆界面设计(一)前后期准备以及相关配置
Android学习之登陆界面设计(一)前后期准备以及相关配置
- 前言
- 成品
- 成品样式
- 成品特点
- 工具
- 系统配置
- 手机配置
- Android Studio 3.6.3
- SDK
- 图片来源
- 矢量图标库
- Background、Logo
- 前期准备
- 新建工程
- 导入素材库
- 新建Activity
- 后期准备
- 准备`values - strings.xml`
- 第一部分:登陆面板部分
- 第二部分:注册面板部分
- 准备`values - colors.xml`
- 准备`values - arrays.xml`
- 准备`values - styles.xml`
前言
希望本文对你的帮助是对写Android程序从无到有的概念
本文适合对Android了解一概不知的同学,没错,就是零基础,零个零……对于大佬路过,欢迎指点下。
当然了,最好还是有点Android基础最好,不然可能还是看不懂我在写什么。
为什么说是针对Android零基础,因为作者我在写本文的时候,也就是对Android零基础。只不过我在学习的过程中查阅了很多资料(没看过视频)。
至于为什么我不喜欢看视频,一是因为懒,二是感觉效率慢、理解不透彻。
但是!!但是!!!
看懂本文,必须要有Java的基础!!
否则你可能连什么叫做“类”都不知道,那本文看起来就跟天书差不多。而且我在这也不教授Android的知识,具体能学到什么,就跟着做就行。不懂的地方自行百度、谷歌解决。
另外,这个版本为了契合未来我打算完成的本地题库程序,所以不使用这些东西,没有用户名、没有密码,没有找回密码功能、没有自动登陆复选框、注册时没有二次输入密码……
成品
成品样式
下面来说一下,这个界面是什么样子的。
- 首先是主面板,主面板有如下控件:两个输入框,一个输入姓名,一个输入学号;两个按钮,一个是登陆按钮,一个是注册按钮;
- 其次是注册面板,一个注册按钮,三个文本输入框,三个下拉列表。
如图:
成品特点
- 最基本的界面设计;
- 具有基本的文本交互;
- 不同的
Activity
切换; - 利用了一个最简单的
补间动画
来实现注册面板的弹出; - 通过
Properties
键值对 对用户注册信息的写入和读取;
以上就是通过本文及后续内容将要完成的。
工具
系统配置
版本:Windows10 家庭中文版
版本号:1909
CPU:Core i5 -7200U
内存:8G
显卡:集显
手机配置
360N7
Android 版本:8.1.0
处理器:骁龙660
内存:6G
Android Studio 3.6.3
Android Studio 3.6.3
Build #AI-192.7142.36.36.6392135, built on April 14, 2020
Runtime version: 1.8.0_212-release-1586-b04 amd64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Windows 10 10.0
GC: ParNew, ConcurrentMarkSweep
Memory: 1246M
Cores: 4
Registry: ide.new.welcome.screen.force=true
Non-Bundled Plugins: com.alibaba.p3c.smartfox
SDK
Android 10(Q),未来计划使用Android4.4(KitKat),不过那是后话。
图片来源
矢量图标库
阿里巴巴矢量图标库
Background、Logo
Background自己找,Logo我临时使用了Android自带的一个矢量图。
前期准备
新建工程
创建一个新的工程 -> 选择空页面Empty Activity
名称为LoginModule
,包名为com.thdmi.app.login
,最小SDK为Android 4.4(KitKat)
创建完成后等待一会儿,看看它给我们带来了什么。
另外,为了尝试Android的SDK 4.4版本,我更改了下工程的编译SDK,也就是从原先的API 29改动到 API 19,这次的登陆界面我已经在API29也就是Android 10里边完成了,没问题,所以如果你使用Android 10也可以。
对了,记得进activity_main.xml
中把默认新建的Hello World
TextView给删除掉。
导入素材库
先说明一下,mipmap里的各种dpi也就是分辨率……我是不会写的,参考文本:
Android中分辨率,DPI,DP与PX对应关系
以及,Android各个文件夹是做什么的,参考链接:Android中项目中各个文件夹的含义和用途详解
其实需要的也就3个图片,记得顺便命名图片。
新建Activity
因为新建工程后的第一个Activity
默认是MainActivity
,而我们需要做的是登陆界面,姑且就忽略这个MainActivity
,再新建一个即可,当然用这个MainActivity
也不是不可以,但就是不想用。
很简单,只需要在工程上新建一个Empty Activity
即可,如图:
新的Activity就起名为LoginActivity
即可。 同时会得到一个布局文件.XML
,叫做activity_login.xml
,位于res
的layout
文件夹下。
后期准备
其实这已经算是开工了,以下内容实际上并不是预先准备的,而是我在不断地学习过程中进行修改而得到的。
所以,这对于我而言并不算是准备,但对于那些想直接套用J代码却发现一堆Bug而不知道错在哪的同学而言,这是属于后期准备。
当然,如果你觉得报错也没关系的话,可以直接跳过这一大步,等到有Bug再回来查找,这其实也是蛮有意思的事情。
准备values - strings.xml
两部分内容,把这两部分一同添加到strings.xml里面:
另外,有些string
可能会一样,理论上是应该删掉不重复的,但为了保证大家能够看得出来这内容属于哪一部分,所以我不一定会因为重用string
而删除它。
第一部分:登陆面板部分
<string name="login_bg_describe">登陆界面背景图片</string><string name="login_btn_text_login">登 陆</string><string name="login_btn_text_register">注 册</string><string name="login_hint_user_name">姓名</string><string name="login_hint_user_pass">学号</string><string name="login_ic_describe_user_name">登陆界面键入用户名旁的图标</string><string name="login_ic_describe_user_pass">登陆界面键入密码旁的图标</string><string name="login_img_title">登陆界面顶端标题</string><string name="login_click_text_forget_password">忘记密码</string><string name="login_limit_scanner">+-*/|_1234567890qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM</string><string name="login_text_auto_login">自动登陆</string><string name="login_third_party">其他方式登录</string>
第二部分:注册面板部分
<string name="login_text_register_student_name">姓名:</string><string name="login_hint_register_student_name">请输入姓名</string><string name="login_text_register_student_id">学号:</string><string name="login_hint_register_student_id">请输入学号</string><string name="login_text_register_college">学校:</string><string name="login_hint_register_college">例如:桂林航天工业学院</string><string name="login_text_register_faculty">院系:</string><string name="login_hint_register_faculty">例如:计算机科学与工程学院</string><string name="login_text_register_grade">年级:</string><string name="login_hint_register_grade">请选择年级</string><string name="login_text_register_major">专业:</string><string name="login_hint_register_major">例如:物联网工程</string><string name="login_text_register_class">班级:</string><string name="login_hint_register_class">请输入班级号</string><string name="login_text_register_keyword">激活码:</string><string name="login_hint_register_keyword">请输入激活码</string>
准备values - colors.xml
因为在学习过程中有着关于屏幕的设置,当时为了测试沉浸式状态栏,就连基础色也改了。
<?xml version="1.0" encoding="utf-8"?>
<resources><!-- Base Color --><color name="colorPrimary">#00FFFFFF</color><color name="colorPrimaryDark">#00FFFFFF</color><color name="colorAccent">#00FFFFFF</color><!-- 文本框字体透明黑和下划线透明白 --><color name="color_TextFont_Transparency_Black">#E6252424</color><color name="color_TextUnderLine_Transparency_White">#99EAEAEA</color><!-- 登陆按钮主题蓝 --><color name="color_Btn_Normal_DarkBlue">#F2267DDA</color><color name="color_Btn_Active_BabyBlue">#2E8DD8</color>
</resources>
准备values - arrays.xml
所谓的arrays.xml
就是后边会说到的下拉选择列表里面的项,顺便一提,下拉选择列表是自定义的,但和这个没啥关系。
理论上这种东西都是定死的(在.xml)里面,而Java里面的项就可以很灵活,就比如时间包括年份日期这些,都是可以获取当前系统时间,然后前后推十几年这样再显示在下拉列表,而xml里面则定死了,不能改,要改就得从代码改,所以这是用代码写列表项的优点,但缺点是不方便管理,嗯,就是顺便提一下,我也是猜的。
另外,这个arrays.xml
默认是没有的,自己在res
的values
下新建一个即可。
添加如下代码:
<?xml version="1.0" encoding="utf-8"?>
<resources><string-array name="college"><item>桂林航天工业学院</item></string-array><string-array name="faculty"><item>管理学院</item><item>航空旅游学院</item><item>机械工程学院</item><item>电子信息与自动化学院</item><item>汽车与交通工程学院</item><item>能源与建筑环境学院</item><item>计算机科学与工程学院</item><item>外语外贸学院</item><item>传媒与艺术设计学院</item><item>理学院</item></string-array><string-array name="grade"><item>2020</item><item>2019</item><item>2018</item><item>2017</item><item>2016</item><item>2015</item><item>2014</item><item>2013</item><item>2012</item></string-array><string-array name="class_id"><item>1</item><item>2</item><item>3</item><item>4</item><item>5</item><item>6</item><item>7</item><item>8</item><item>9</item><item>10</item><item>11</item><item>12</item><item>13</item><item>14</item><item>15</item><item>16</item><item>17</item><item>18</item><item>19</item><item>20</item></string-array></resources>
很明显,我是“计”院的。
准备values - styles.xml
<resources><!-- Base application theme. --><style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"><!-- 默认标题栏主题. --><item name="colorPrimary">@color/colorPrimary</item><item name="colorPrimaryDark">@color/colorPrimaryDark</item><item name="colorAccent">@color/colorAccent</item></style><!-- 文本框无下划线 --><style name="style_TextView_UnderLine_None" parent="Theme.AppCompat.Light.NoActionBar"><item name="colorControlNormal">#00FFFFFF</item><item name="colorControlActivated">#00FFFFFF</item></style><!-- 文本框透明白下划线 --><style name="style_TextView_UnderLine_Transparency_White" parent="Theme.AppCompat.Light.NoActionBar"><item name="colorControlNormal">@color/color_TextUnderLine_Transparency_White</item><item name="colorControlActivated">@color/color_TextUnderLine_Transparency_White</item></style></resources>
至此,整个准备工作就算基本完成了,讲道理嘛,还是得有Android基础的同学才能看得懂的。
其实我还写了另一个版本的,也就是有密码那种,而且要联网验证的,但是优点麻烦,而且服务器这边也没能处理好,所以就弄了个简单点的。
Android学习之登陆界面设计(一)前后期准备以及相关配置相关推荐
- Android学习之登陆界面设计(二)基本界面设计
Android学习之登陆界面设计(二)基本界面设计 前提 绘图样式 - drawable bg_login_btn_submit.xml bg_login_panel_slide.xml bg_log ...
- android布局基础及范例:QQ登陆界面设计
使用android手机的用户想必都有android手机QQ客户端吧,我们是不是觉得QQ登陆界面非常漂亮美观而且具有亲和力?我们是不是也想作出像 QQ那样美观的界面?有的人肯定会问,做UI那不是美工人员 ...
- 基于Html+Bootstrap的高校智慧学习平台WEB界面设计
目 录 1 概述 4 2 需求分析 4 3 高校智慧学习平台WEB界面设计 4 2.1 功能描述 5 2.2 功能结构图 5 2.3界面设计 7 1 概述 高校智慧学习平台主要是为在校学生提供一个开源 ...
- APP开发流程实例讲解-儒释道网络电台八天开发全程-在Android Studio中完成界面设计
APP开发流程实例讲解-儒释道网络电台八天开发全程 功能和界面初步设定 APP开发流程实例讲解-儒释道网络电台八天开发全程 项目发起 功能和界面初步设定 在Android Studio中完成界面设计 ...
- android 优秀app界面设计,基于Android系统的App界面设计.doc
基于Android系统的App界面设计 摘 要:智能手机时代的来临改变了大多数人的生活习惯,时至今日智能手机已经成为了人们工作生活中的一部分,在工作生活中发挥着重要的作用.App作为智能手机应用程序的 ...
- Linux学习之ARM开发板连接ubuntu18.04LTS及NFS相关配置
Linux学习之ARM开发板连接ubuntu18.04LTS及NFS相关配置 第一步:在PC机安装Ubuntu18.04LTS 具体安装步骤参见上一篇文章 第二步:安装arm-linux-gcc交叉编 ...
- 2018年Sketch UI界面设计套件前十了解下!
Sketch近几年凭着大量的插件和免费教程迅速发展,而Sketch的忠实粉丝们也乐于将他们的免费模型分享出来.这也意味着你会在网上找到更多的免费Sketch素材,从完整的模型到内容详实的UI套件. 为 ...
- QML与C++交互:登陆界面设计
环境: 主机:WIN7 开发环境:Qt5.2.1 说明: QML设计前台界面,C++后台负责逻辑 效果图: 源代码: 前台qml文件 login.qml [javascript] view plain ...
- 应用篇1.3 后台登陆界面设计
应用篇1.3 后台登陆界面审计 一.后台登陆界面图: 各种准备工作完毕后,对于这款日程管理类的软件,首先设计一个后台登陆功能.可以通过密码保护自己的日程隐私. 1.初次登陆界面如图1.1所示. 2.如 ...
最新文章
- 程序员接活利器,dataTable组件带你快速开发,摆脱CRUD
- java list接口为何要重新声明collection接口的方法_JAVA Collection接口中List Map 和Set的区别(转)...
- 基于R语言的时间序列分析预测
- 邮件服务器fixpost服务(1)
- Codeforces - 474D - Flowers - 构造 - 简单dp
- ServletContextListener 启动SPRING加载数据到缓存的应用
- java语法特点_Java 语言特点
- WMS——新能源汽车减速机组装工厂WMS案例
- KEIL5编译51单片机程序依赖包
- day42.自动关机小程序
- 用vue element-ui分页组件构建一个简单的分页 ( 超详细 )
- Azure 上通过 SendGrid 发送邮件
- 什么是物联网AIoT?
- cocos做飞机大战笔记【玩家飞机移动与子弹发射】
- python是一种面向对象的高级语言_为什么入门大数据选择Python而不是Java?
- 计算机毕业设计基于asp.net网上考试报名系统——计算机毕业设计
- P1365 WJMZBMR打osu! / Easy
- 你知道吗?没有硅胶消泡剂,避孕套可能都不安全了
- 45套(毕业答辩、开题报告、职场)PPT模板免费赠送
- 纵横网络靶场社区-Modbus协议