Android教程学习
该笔记实际完成时间为:2020/8/16
Android自学笔记 目录
- 前言:
- 一、ViewGroup概述
- 二、控制UI界面
- 三、布局管理器
- 四、控件
- 1、文本框(TextView)
- 2、编辑框(EditText)
- 3、普通按钮(Button)
- 4、图片按钮(imageButton)
- 5、单选按钮(RadioButton)
- 6、复选框(CheckBox)
- 7、日期选择器
- 8、时间选择器(TimePicker)
- 9、计时器(Chronometer)
- 10、进度条(ProgressBar)
- 11、拖动条(SeekBar)
- 12、星级评分条(RatingBar)
- 13、图像视图(ImageView)
- 14、图像切换器(ImageSwitcher)
- 15、网格视图(GridView,需要适配器adapter)
- 16、下拉列表框(Spinner)
- 17、列表视图(ListView)
- 18、滚动视图
- 19、选项卡
- 五、Activity(屏)
- 六、Intent
- 七、引用其他布局文件
- 八、数组资源
- 九、消息、通知与广播
- 十、动画
- 十一、Handler消息处理(==子线程中更新主线程的UI组件==)
- 十二、数据存储技术
- 结语
前言:
进行Android学习是因为,2020年参加了第十八届山东省大学生软件设计大赛
本文主要是Android学习笔记
关于参与大赛的其他信息、情况,博主将在其他文章进行详细介绍
一、ViewGroup概述
LayoutParams类(控制布局的位置、高度宽度)
可以设置具体的值也可以是下面的常量
1和2都是设置与父容器相同,2是最新的
3是随内容的大小变化
marginLayoutParams类(外边距)
二、控制UI界面
XML布局
设置id
找到id
R.id.(id名)
开发自定义view(通常用帧布局)
实例化帧布局管理器
三、布局管理器
相对布局管理器(RelativeLayout)
第一、 二行固定
对布局管理器设置的属性
设置布局宽高 match_parent 是和父容器相同
设置所有组件的摆放方式 设置组件不适用gravity摆放
对组件设置的属性(通过内部类LayoutParams)
设置相对于指定组件的位置 设置组件与父容器对齐方式(都是boolean类型)
设置与指定组件的边界对齐方式 设置组件位于布局管理器的位置
(1) 水平居中
(2) 中间
(3) 垂直居中
例:设置组件位于指定组件的下方
线性布局管理器(LinearLayout)超出屏幕的不显示
主要属性
==设置水平或垂直 == 设置所有子组件的属性
右下角显示
分配剩余空间(按权重)
帧布局管理器(FrameLayout)
前景图像:一直显示在最前面的图片
设置前景图像 设置前景图像的位置
表格布局管理器(TableLayout)
行标记<TableRow> </TableRow>
在行标记中,每添加一个控件就增加一列
如果想一个控件占一行的话,可以直接添加控件,不用行标记
隐藏指定列 collapseColumns 属性,下标从0开始,如果隐藏多列,用 ,分割
设置允许被拉伸 stretchColumns 属性 也是序号
设置允许被收缩 shrinkColumns 属性 也是序号
网格布局管理器(GridLayout)
设置显示的最大列数 设置显示方向(水平、垂直) 设置显示的最大行数
指定子组件位于第几列 指定子组件位于第几行
指定子组件横向夸几列 指定子组件纵向夸几行
指定子组件占在水平方向上剩余空间的比例 垂直方向权重
设置子组件占据网格空间的方式
布局管理器的嵌套
原则:
字符串资源
设置
调用:
四、控件
1、文本框(TextView)
设置显示文字(text):
设置字体大小(textSize):
设置字体颜色(textColor):
点击这里,可视化选择颜色
设置为单行文本框(singleLine):
2、编辑框(EditText)
显示提示信息(hint):
设置为密码框(inputType=textPassword):
设置为只能输入数字(inputType=number):
在编辑框中绘制图像属性(drawableLeft…):
在左侧绘制图像:
与上个属性相同(新版本)
设置文本行数(lines):
获取编辑框内容:
1.为编辑框设置id
2.从Activity中获取该编辑框
3.获取内容
3、普通按钮(Button)
设置显示的文字(text):
对于文本框的属性,按钮也有
设置字体大小(textSize):
设置字体颜色(textColor):
点击这里,可视化选择颜色
为按钮添加单击事件监听器:
4.3.1、匿名内部类作为单击事件监听器
1.) 设置id
2.) 在Activity的onCreate方法中获取该按钮
3. )添加单击事件监听器,并重写onClick方法
4.) 在onClick方法中编写单击后的代码
消息提示框:
提示信息 ==显示时间(该处为短) ==
效果:
4.3.2、通过onClick属性实现
1).在Activity中编写一个包含View类型参数的方法
2).在按钮中将android:onClick属性指定为编写好的方法名
例如:
Activity中
在按钮中指定方法名:
4、图片按钮(imageButton)
与普通按钮的区别
设置图片(src):
项目文件夹 图片名(无后坠)
设置背景颜色为透明(background=#0000):
为按钮添加单击事件监听器:
4.4.1、匿名内部类作为单击事件监听器
1.) 设置id
- )在Activity的onCreate方法中获取该按钮
3.)添加单击事件监听器,并重写onClick方法
- )在onClick方法中编写单击后的代码
消息提示框:
提示信息 == 显示时间(该处为短)==
效果:
4.4.2、通过onClick属性实现
1)在Activity中编写一个包含View类型参数的方法
2)在按钮中将android:onClick属性指定为编写好的方法名
例如:
Activity中
在按钮中指定方法名:
5、单选按钮(RadioButton)
添加文字(text):
设置默认被选中(checked):
设置单选按钮组(<RadioButton>
):
获取选中的值:
4.5.1.在单选按钮选中状态改变时获取
1.)为单选按钮组添加id
2. )在activity中获取单选按钮组
3. )添加选中状态改变监听器
4. )在onCheckedChanged方法中编写代码
4.5.2.在单击其他按钮时获取
1) 为单选按钮组添加id
2)为其他按钮设置id
3).定义全局变量
4)在activity中的onCreate方法中获取单选按钮组
5)在activity中的onCreate方法中获取该按钮
6)为该按钮添加单击事件监听器
7).在onClick方法中编写代码
6、复选框(CheckBox)
添加文字(text):
设置默认被选中(checked):
获取复选框的值:
- )为复选框添加id
- )在activity中添加全局变量
3.) 在activity中的onCreate方法中获取该复选框
- )为复选框添加选中状态改变事件监听器
5). 在onCheckedChanged方法中编写代码
未完待续
会尽快更新的
收藏+关注,学习不迷路
2021/5/21 更新
7、日期选择器
获取选中的日期:
-
)为日期选择器添加id
-
)在activity中定义全局变量
-
)在onCreate方法中获取该日期选择器
-
)实例化日期对象,初始化日期,设置日期改变监听器
5.)编写show方法
6.)在onDateChanged方法中调用show方法显示改变后的日期
8、时间选择器(TimePicker)
设置为24小时制
获取选中的时间
1.)为时间选择器添加id
2.)在activity的onCreate方法中获取该时间选择器
3.为该选择器添加时间改变事件监听器
4.)在onTimeChanged方法中编写代码
9、计时器(Chronometer)
设置时间显示格式(format):
%s 时分秒格式
设置字体大小(textSize):
设置字体颜色(textColor):
点击这里,可视化选择颜色
设置计时器计时
1.) 为计时器添加id
2.) 在activity中定义全局变量
3.)在onCreate方法中获取该计时器
4.) 设置起始时间,显示格式,开始计时,设置时间改变监听器,如果计时60s则停止计时器
10、进度条(ProgressBar)
设置最大值(max):
设置当前进度(progress):
设置样式(style):
进度条基本用法(通过线程):
1.) 为进度条设置id
2.) 在activity中定义全局变量
3.) 在onCreate方法中获取进度条
4.)启动线程
5.)实例化消息处理对象
11、拖动条(SeekBar)
设置最大值(max):
设置当前进度(progress):
设置拖动条样式(thumb):
可以通过一下方式设置拖动条圆圈为指定图片
添加拖动改变事件监听器:
12、星级评分条(RatingBar)
设置星数量(numStars):
设置默认点亮星数:
设置每次选择的颗数(stepSize):
设置只能看,但是无法改变(isIndicator):
获取选中的星数
1.)为星级评分条添加id
2.) 在activity的onCreate方法中获取该星级评分条
3.) 获取选择的星数
获取每次可以选择的星数
1.)为星级评分条添加id
2.)在activity的onCreate方法中获取该星级评分条
3.)获取每次可以选择的星数
获取选择的进度
1.)为星级评分条添加id
2.)在activity的onCreate方法中获取该星级评分条
3.)获取选择的进度
13、图像视图(ImageView)
设置图片(src):
设置宽高:
等比例缩放,图像不会被拉伸
设置占满整个组件(scaleType):
图像会被拉伸
设置组件调整自己的大小来保持所显示图像的长宽比
设置组件最大宽高
设置图像着色(tint):
类似滤镜
14、图像切换器(ImageSwitcher)
控制显示图像切换
1.)添加id
2.)在activity的onCreate方法中获取该组件
3.)添加淡出动画
4.) 添加淡入动画
5.) 指定视图工厂
6.) 在makeView方法中设置View对象
7.)添加单机后切换的图片(在单击事件监听器中)
8.)在onClick方法中
15、网格视图(GridView,需要适配器adapter)
设置列数(numColumns):
设置为自动排列
适配器
常用适配器实现类
1)ArrayAdapter
数组适配器,通常用于将数组的多个值包装成多个列表项,只能显示一行文字
2)SimpleAdapter
简单适配器,通常用于把list集合的多个值包装成多个列表项,可以自定义各种效果,功能非常强大
3)SimpleCursorAdapter
主要用于将数据库的内容以列表的形式展现
4)BaseAdapter
可以对各个列表项进行最大限度的定制,具有很高的灵活性
为网格视图添加适配器
一般先创建布局文件,用于单元格的布局
1.)添加布局文件
2.)在该布局文件中添加图像视图
3.) 为网格视图添加id
4.) 在activity中定义数组,用于保存要显示的图片名
5.) 在activity的onCreate方法中获取GridView
6.) 创建list对象,保存图像资源
7.) 通过循环保存图像资源
8.) 创建SimpleAdapter对象,有5个参数
参数如下:
9.) 为网格视图设置适配器
16、下拉列表框(Spinner)
添加列表值
16.1.1通过属性(entries)
1.)在values文件夹中创建数组资源xml
2.)设置列表资源
16.1.2. 通过适配器
1.)为下拉列表框添加id
2.)在activity的onCreate方法中创建字符串数组资源
3.)实例化适配器
4.)为适配器设置列表框设置下拉时的样式
5.)连接适配器和下拉列表框
获取选中值(.getSelectedItem方法)
17、列表视图(ListView)
添加列表值
17.1.1.通过属性(entries)
1.)在values文件夹中创建数组资源xml
2.)设置列表资源
17.1.2. 通过适配器
1.)为列表视图添加id
2.)在activity的onCreate方法中创建字符串数组资源
3.)实例化适配器
4.)连接适配器和下拉列表框
18、滚动视图
设置滚动视图(XML和JAVA两种)
18.1.1.XML中
18.1.1.1 垂直滚动条上下滚动(ScrollView)
注意:上下滚动,高度是包裹自身的内容
左右滚动,宽度是包裹自身的内容
18.1.1.2 可以直接放置其他控件
18.1.1.2 水平滚动条左右滚动(HorizontalScrollView)
水平滚动条只能有一个直接子标记,如果需要添加多个,则需要包裹在一个布局管理器中
18.1.2. JAVA中
1.) 创建布局管理器
2.) 为布局管理器设置id
3.)在JAVA中获取该布局管理器
4.) 实例化滚动视图对象
5.) 将滚动视图添加到布局管理器中
19、选项卡
1.)添加TabHost
设置id(使用Android预先设置好的)
2.)添加(垂直)线性布局管理器,用于存放选项标签(TabWidget)和选项内容(TabContent)
3.)在线性布局管理器中添加TabWidget
设置id(使用Android预先设置好的)
4.)在线性布局管理器中添加TabContent(用帧布局管理器使用特定id来替代)
设置id
5.)编写每个选项卡的布局文件
6.)在activity中初始化组件
获取tabHost组件
初始化
添加标签页
五、Activity(屏)
1、Activity概述
2、创建和配置Activity
2.1自己配置
2.2 通过Android studio创建自动配置
也可以直接通过Android studio 来创建activity,创建后,自动配置完成。
3、启动和关闭Activity
3.1启动Activity:
1.)设置入口Activity代码如下:
2.)其他Activity启动方法:
3.2 关闭Activity:
4、使用Bundle在Activity之间交换数据
发送
接收
5、调用另一个Activity并返回结果(startActivityForResult方法))
第一个参数:需要打开的Activity的intent对象
第二个参数:操作请求码,用于标识请求的来源
6、Fragment
6.1 Fragment生命周期
Fragment必须依赖于activity,activity不是在运行状态,无法对fragment进行操作
6.2 创建Fragment
1.) 继承fragment类
2.) 重写onCreateView方法
空白处单击鼠标右键
再选择
直接输入onCreateView
自动重写方法
3.)创建布局文件
4.)在fragment的onCreateView方法中编写代码
6.3 在activity中添加fragment
6.3.1.直接在布局文件中添加fragment
前提:已经创建好对应的fragment
6.3.2.当activity运行时添加fragment
在activity的onCreate方法中
1.)实例化需要添加的fragment
2.)实例化fragmentTransaction
3.)提交(完成添加)
六、Intent
初识Intent(意图,相当于快递员)
应用:
1. 用于开启activity
2. 用于开启service
3. 用于传送广播
属性
1、Component name(用于设置Intent对象的组件名称)
2、Action(用于指定将要执行的动作)和Data(用于指定具体的数据)
一般情况,Action和Data联合使用
2.1设置action
常量如下:
2.2设置data
拨打电话:
发送短信
设置默认发送的短信内容
3、设置权限
在下面文件中
设置打电话的权限
设置发信息的权限
Action和Category (用于调用系统的activity或者Android其他应用组件)
七、引用其他布局文件
八、数组资源
1、字符串数组资源
1.1 为列表视图添加列表项
1.2 JAVA中获取数组资源
2、Drawable资源
状态列表资源
九、消息、通知与广播
1、添加搜索action bar
2、返回上级action bar
3、弹窗对话框
3.1 确定/取消对话框
3.2 列表选择对话框
3.3 单选列表对话框
3.4 多选列表对话框
4、广播
4.1 发送广播
4.2 接收广播
1.)创建广播接收器
动作内容可以自定义
2.)注册广播
5、设置闹钟
十、动画
1、画笔和画布
2、绘制几何图形
3、绘制文本
4、绘制路径和沿路径的文本
5、逐帧动画
基本步骤
1.)新建目录
2.)创建动画资源文件
3.) 设置动画资源
4.) 启动播放
6、补间动画
6.1 透明度渐变动画(alpha)
1.)创建动画资源文件
2.)为布局文件添加动画
6.2 旋转动画(rotate)
1.)创建动画资源文件
2.)为布局文件添加动画
6.3 缩放动画(scale)
1.)创建动画资源文件
2.)为布局文件添加动画
6.4 平移动画(translate)
1.)创建动画资源文件
2.)为布局文件添加动画
未完待续
以下为2021/5/26 更新内容
十一、Handler消息处理(子线程中更新主线程的UI组件)
1、Handler消息传递机制
用于在子线程中更新主线程的UI组件
(Handler实例)通过每隔一段时间发送消息,来更新组件
2、Message
属性
获取Message对象
3、(Message实例)轮播广告
1.)布局
2.)动画资源
右侧进入
左侧退出
3.)全局变量
4.)初始化图片和动画数组
5.)通过Handler匿名内部类实现轮播
6.)在onCreate方法中启动轮播
4、Looper(循环器,采用先进先出,循环将message返回给handler处理)
创建Looper对象
方法:
子线程创建Looper对象步骤
十二、数据存储技术
(一)、Shared Preferences存储
1、什么是Shared Preferences存储
2、存储的文件格式及路径
3、存储步骤
1.)获取Shared Preferences对象
2.) 获取Shared Preferences.Editor对象
通过Shared Preferences.edit()方法获取
3.) 向Shared Preferences.Editor对象中添加数据
通过Shared Preferences.Editor对象的方法:
4.) 提交数据
通过Shared Preferences.Editor对象的方法:
3、读取步骤
1.)获取Shared Preferences对象
2.)读取数据
(二)、文件存储
1、内部存储
保存位置
输出
输入
2、外部存储
输出
输入
设置权限
保存位置
数字和字母组成(不一定完全相同)
(三)、数据库存储(SQLite数据库)
操作SQLite数据库的方式
1.SQLite工具(Android SDK自带工具)
SDK目录,复制粘贴打开
2.JAVA代码
创建数据库
两种方法:
1.使用SQLitedatabase类提供的方法
2.继承SQLiteOpenHelper类
操作数据库
1.创建数据库操作类
定义SQL语句
创建数据表
编写数据库更新日志信息
2.在Activity中实例化操作类
声明:
实例化:
3.查询操作:
将查询结果保存到ArrayList中
将查询结果通过listview显示
4.插入操作:
编写插入数据的方法
调用方法
5.在重写的Activity销毁事件中关闭数据库连接
数据库保存位置
结语
该笔记于2020/8/16结笔于此
原因是,该笔记是为了参加山东省软件设计大赛,学习Android 的笔记,到此处所学内容已经可以应对比赛。当时,博主忙于准备大赛,就再没有编写了。
后续,博主会更新一些关于参加大赛的相关经历。
望大家继续关注,共同进步。