(一) 三个基本控件
1.标签控件
- 类层次结构图
- 常用属性
属性 | 含义 |
---|---|
text | 文本内容 |
textSize | 文本字号,单位:sp |
textColor | 文本颜色,#ff0000 - 红色 |
layout_height | 高度,单位:dp (wrap_content, match_parent) |
layout_weight | 宽度,单位:dp (wrap_content, match_parent) |
2.编辑框控件
- 常用属性
属性 | 含义 |
---|---|
text | 文本内容 |
textSize | 文本字号,单位:sp |
textColor | 文本颜色,#ff0000 - 红色 |
hint | 提示信息 |
singleLine | 单行(true or false) |
layout_height | 高度,单位:dp (wrap_content, match_parent) |
layout_weight | 宽度,单位:dp (wrap_content, match_parent) |
inputType | 输入类型(普通文本、密码、邮件……) |
3.按钮控件(Button)
- 类层次继承图
- 常用属性
属性 | 含义 |
---|---|
text | 文本内容 |
textSize | 文本字号,单位:sp |
textColor | 文本颜色,#ff0000-红色 |
background | 背景颜色或背景图片 |
layout_height | 高度,单位:dp (wrap_content, match_parent) |
layout_weightt | 宽度,单位:dp (wrap_content, match_parent) |
- EditText与Button是兄弟关系,它们的爹是TextView
(二)安卓事件处理机制
1、安卓事件处理概述
- 不论是桌面应用还是手机应用程序,需要对用户的动作提供响应,这种为用户动作提供响应的机制就是事件处理。
- 安卓提供了两种事件处理机制:基于回调的事件处理和基于监听的事件处理。
- 基于监听的事件处理是一种“面向对象”的事件处理,涉及三种对象:事件源(EventSource)、事件(Event)、事件监听器(EventListener)。
2、安卓事件处理步骤
- 以按钮单击事件处理为例说明安卓事件处理步骤
序号 | 任务 |
---|---|
1 | 在界面类里声明按钮控件变量 |
2 | 通过findViewById()方法得到按钮实例 |
3 | 利用setOnClickListener()方法给按钮注册单击事件监听器 |
4 | 实现单击事件监听器接口,采用匿名实现方式 |
5 | 在接口的抽象方法里编写事件处理代码 |
(三)案例演示:实现用户登录
1、创建安卓应用
- 基于
Empty Activity
模板创建安卓应用
- 配置项目信息
- 单击【Finish】按钮
2、准备背景图片
- 将背景图片background.png拷贝到drawable目录
3、基于模板创建登录窗口
- 基于Empty Activity模板创建LoginActivity,要生成对应的布局文件,并且要设置为启动Activity
- 单击【Finish】按钮
4、登录窗口布局资源文件
-
登录窗口布局资源文件 - activity_login.xml
-
将约束布局改为线性布局,并设置相关属性
-
添加用户登录标签
-
添加输入用户名的标签和编辑框,但是需要一个水平方向的线性布局把它们框起来
-
添加输入密码的标签和编辑框,但是需要一个水平方向的线性布局把它们框起来
-
添加登录按钮和取消按钮,但是需要一个水平方向的线性布局把它们框起来
-
登录窗口布局资源文件完整代码
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/background"
android:gravity="center"
android:orientation="vertical"
android:padding="15dp"
tools:context=".LoginActivity">
<TextView
android:id="@+id/tv_user_login"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/user_login"
android:textColor="#0000ff"
android:textSize="25sp" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:orientation="horizontal">
<TextView
android:id="@+id/tv_username"
android:layout_width="wrap_content"
android:layout_height