前言<br>第1章 Android开发简介1<br>1.1 Android OS简介1<br>1.1.1 Android的发展历史1<br>1.1.2 Android体系结构1<br>1.1.3 Dalvik虚拟机2<br>1.2 搭建开发环境3<br>1.2.1 下载和安装JDK3<br>1.2.2 下载和安装Android Studio5<br>1.2.3 创建Android模拟器9<br>1.2.4 下载Android SDK11<br>1.3 第一个Android程序13<br>1.3.1 HelloWorld程序13<br>1.3.2 Android程序结构16<br>1.3.3 Android程序打包17<br>1.4 配置文件build.gradle18<br>1.5 思考与练习19 <br>第2章 Android应用界面布局设计20<br>2.1 UI控件简介20<br>2.2 经典布局22<br>2.2.1 线性布局LinearLayout23<br>2.2.2 案例1 制作用户注册页面25<br>2.2.3 帧布局FrameLayout26<br>2.3 约束布局ConstraintLayout27<br>2.3.1 相对定位27<br>2.3.2 角度定位29<br>2.3.3 居中31<br>2.3.4 偏移32<br>2.3.5 尺寸约束33<br>2.3.6 链34<br>2.4 辅助布局工具36<br>2.4.1 分组36<br>2.4.2 屏障37<br>2.4.3 辅助线39<br>2.5 思考与练习40 <br>第3章 Android应用界面效果41<br>3.1 样式和主题41<br>3.1.1 样式和主题介绍41<br>3.1.2 案例2 使用自定义样式和主题42<br>3.2 国际化43<br>3.2.1 国际化方式43<br>3.2.2 案例3 让页面支持中英显示44<br>3.3 shape形状46<br>3.3.1 shape形状语法介绍46<br>3.3.2 案例4 shape形状的使用47<br>3.4 layer-list图层列表49<br>3.4.1 案例5 单线效果49<br>3.4.2 案例6 双线效果49<br>3.4.3 案例7 阴影效果50<br>3.4.4 案例8 图片叠放效果50<br>3.4.5 案例9 图片旋转叠放效果51<br>3.5 selector选择器51<br>3.5.1 selector选择器语法介绍51<br>3.5.2 案例10 颜色选择器和图形选择器的使用52<br>3.6 思考与练习53 <br>第4章 Android应用人机交互54<br>4.1 Android应用事件处理54<br>4.1.1 案例11 在代码中操作控件54<br>4.1.2 案例12 以注册监听器方式响应用户单击事件56<br>4.1.3 案例13 重写事件方法以处理按键操作57<br>4.2 菜单58<br>4.2.1 案例14 为页面添加选项菜单59<br>4.2.2 案例15 为页面添加上下文菜单60<br>4.3 常用控件62<br>4.3.1 文本显示控件62<br>4.3.2 输入框控件62<br>4.3.3 按钮类控件63<br>4.3.4 图片显示控件64<br>4.3.5 案例16 几个控件的使用65<br>4.4 软键盘67<br>4.4.1 软键盘的设置67<br>4.4.2 案例17 软键盘的使用68<br>4.5 思考与练习69 <br>第5章 Activity和Intent70<br>5.1 Activity介绍70<br>5.1.1 Activity的启动模式70<br>5.1.2 Activity生命周期71<br>5.1.3 案例18 启动窗口输出生命周期方法73<br>5.2 启动新窗口74<br>5.2.1 Intent介绍74<br>5.2.2 案例19 添加新窗口并启动76<br>5.2.3 案例20 使用浏览器浏览网页77<br>5.3 Activity中的数据传递78<br>5.3.1 数据正传79<br>5.3.2 案例21 从登录界面跳转到新界面79<br>5.3.3 数据回传80<br>5.3.4 案例22 注册页面头像选择81<br>5.4 对话框83<br>5.4.1 日期和时间对话框类的使用84<br>5.4.2 AlertDialog对话框类的使用85<br>5.5 思考与练习88 <br>第6章 子窗口设计89<br>6.1 Fragment介绍89<br>6.1.1 Fragment的创建89<br>6.1.2 Fragment的生命周期91<br>6.1.3 Fragment的使用91<br>6.1.4 案例23 Fragment的使用92<br>6.2 BottomNavigationView控件94<br>6.2.1 BottomNavigationView控件简介94<br>6.2.2 案例24 Fragment与BottomNavigationView结合实现子窗口切换95<br>6.3 ViewPager控件97<br>6.3.1 ViewPager控件简介97<br>6.3.2 PagerAdapter适配器98<br>6.3.3 案例25 用ViewPager实现简单的图片切换99<br>6.4 TabLayout控件100<br>6.4.1 TabLayout控件简介100<br>6.4.2 TabLayout的使用100<br>6.4.3 案例26 TabLayout与ViewPager结合设计子栏目102<br>6.5 Fragment的嵌套使用103<br>6.5.1 Fragment的嵌套103<br>6.5.2 Fragment适配器103<br>6.5.3 案例27 结合TabLayout、ViewPager、Fragment嵌套实现页中页104<br>6.6 思考与练习106 <br>第7章 数据访问107<br>7.1 SharedPreferences的使用107<br>7.1.1 SharedPreferences简介107<br>7.1.2 案例28 使用SharedPreferences保存用户名和密码108<br>7.2 文件存储110<br>7.2.1 内部存储110<br>7.2.2 案例29 使用内部存储保存文本文件110<br>7.2.3 外部存储112<br>7.2.4 案例30 使用外部存储保存文件112<br>7.3 JSON解析115<br>7.3.1 JSON数据115<br>7.3.2 JSON解析方法116<br>7.3.3 案例31 使用org.json解析学生信息118<br>7.3.4 案例32 使用Gson解析天气信息119<br>7.4 SQLite数据库122<br>7.4.1 创建数据库122<br>7.4.2 数据库操作123<br>7.4.3 ListView控件的使用126<br>7.4.4 案例33 学生成绩管理126<br>7.5 思考与练习129 <br>第8章 广播和内容提供者131<br>8.1 广播介绍131<br>8.1.1 广播运转模式131<br>8.1.2 广播分类132<br>8.2 全局广播132<br>8.2.1 全局广播的使用132<br>8.2.2 案例34 监听WiFi状态134<br>8.3 本地广播137<br>8.3.1 本地广播的使用137<br>8.3.2 案例35 使用本地广播发送数据138<br>8.4 内容提供者139<br>8.4.1 内容提供者介绍139<br>8.4.2 案例36 监听用户截屏和短信142<br>8.5 思考与练习146 <br>第9章 服务147<br>9.1 服务简介147<br>9.1.1 服务的使用方式147<br>9.1.2 自定义服务......
温馨提示:请使用湖州市图书馆的读者帐号和密码进行登录