自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

云上道人的博客

个人技术博客

  • 博客(65)
  • 资源 (2)
  • 收藏
  • 关注

原创 Android Material Design之CollapsingToolbarLayout(可折叠式标题栏)

目录1.概述1.1 定义1.2 原理2.案例2.1 展示效果2.2 创建布局2.3 属性解析2.4 业务处理2.5 优化:充分利用系统状态栏空间 难道不修改会报错?由于没有5.0以前的系统模拟器,过段时间回来测试一下。1.概述1.1 定义 CollapsingToolbarLayout(可折叠式标题栏)是一个作用于...

2019-03-30 22:19:37 775

原创 Android Material Design之SwipeRefreshLayout(下拉刷新)

1.概述 SwipeRefreshLayout是用于实现下拉刷新功能的核心类,由support-v4库提供。使用的话只需要将要实现下拉刷新的功能的控件放置到 SwipeRefreshLayout中即可。2.案例2.1 效果展示 效果如下所示:下拉即可出现下拉进度条,运行指定时间后,刷新...

2019-03-30 20:39:49 389

原创 Android Material Design之AppBarLayout

目录1.概述2.案例2.1 布局代码2.2 案例展示效果2.3 案例分析2.3 通过AppBarLayout解决2.4 分析2.5 实现Material Design设计理念 成功的遇到一坑,这里ToolBar不会随着ListView滚动而显示或者隐藏。可以说ListView不支持这个效果。一个Fragment根布局是ScrollView,另一...

2019-03-30 18:16:05 1746

原创 Android Material Design之CoordinateLayout

1.概述 CoordinateLayout相当于一个加强版的FrameLayout偶然,是一个由Design Support库提供的控件。在普通情况下的作用域FrameLayout一样。特殊在于,CoordinateLayout可以监听其所有子控件的各种事件,然后自动帮助做出最为合理的响应。 举个例子,在前文SnackBar章节中,弹出的Snack...

2019-03-30 14:49:42 1203

原创 编译原理-词法分析

目录1.词法分析概述1.1 词法分析原理1.2 词法分析程序1.3 词法分析程序两种实现方式1.3.1 手工构造1.3.2 自动生成1.4 词法分析任务1.5 词法分析的目的1.6 词法分析的工作1.7 两种词法分析调用方式1.7.1 独立执行一遍1.7.2 需要时即调用2.高级语言中的单词2.1 单词的分类2.2 单词的种别码2.3...

2019-03-30 14:32:31 12141

原创 设计模式-基础

目录1. 设计模式概念2.设计模式分类2.1 创建型模式2.2结构型模式2.3行为型模式2.4J2EE模式3.设计模式原则1. 设计模式概念 设计模式是在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的实验和错误总结出来的。2.设计模式分类 设计模式分为以下五大类:2...

2019-03-30 14:30:03 83

原创 创建型模式-单例模式

目录1. 单例模式概念2.单例模式实现原理3.单例模式分类4.饿汉模式 5.懒汉模式6.懒汉模式和饿汉模式对比1. 单例模式概念 为了确保某个类只有一个实例,而且自行实例化向整个系统提供这个实例,提供全局方法。单例模式是一种对象创建新模式。2.单例模式实现原理 原理如下:1.将构造方法私有化,不允许...

2019-03-30 14:29:27 77

原创 Android Material Design之SnackBar(提示工具)

1.概述 SnackBar与Toast一样,用于向用户提示信息。但是两者有着不同的区别如下:Toast Toast的作用是告诉用户现在发生了什么事情,但是同时用户只能被动的接收这个事情,不能让用户 进行选择操作 SnackBar SnackBar与Toast不同在于,允许在提示中加入可交互的按钮,当用户点击按钮的时候...

2019-03-30 14:22:27 455

原创 Android Material Design之FloatingActionButton(悬浮按钮)

1.概述 里面设计是Material Design中重要的思想。FloatingActionButton不属于平面的一部分,而是位于另外一个维度,看起来就是一种悬浮的感觉。 FloatingActionButton是Design Support库汇中的一个控件,默认使用colorAccent来作为按钮的颜色,使用的话要引入依赖库,如下:compile ...

2019-03-29 23:11:37 4207

原创 Android Material Design之NavigationView

1.概述 NavigationView是Design Support库中提供的一个控件,要使用的话需要将这个库引入项目中才行,如下所示:dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'com.android.support:a...

2019-03-29 22:49:57 217

原创 Android Material Design之DrawerLayout(滑动菜单)

1.概述 DrawerLayout是一个布局,在其布局中只允许方两个直接子控件。第一个子控件是主屏幕中显示的内容;第二个子控件是滑动菜单中要显示的内容。2.实例2.1 实现效果 实现效果如下所示:点击或向屏幕右侧滑动,出现侧滑菜单:2.2 添加菜单目录图标按钮 右击res目录->new...

2019-03-29 21:16:55 449

原创 Android Material Design之Toolbar

1.ActionBar1.1 ActionBar概述 ActionBar是系统原生的标题栏。每个Activity默认的最顶部的那个标题栏就是ActionBar。1.2 默认的使用方式 ActionBar到底从哪里来呢?其实是根据项目中指定的主题来显示的。在AndridManifest.xml中默认引入的theme如下所示:<?xml ...

2019-03-29 20:15:27 601

原创 编译原理-语法分析

1.语法分析概述 1.1 定义 语法分析就是根据高级语言的语法规则对程序的语法结构进行分析。如下图所示:1.2 任务 语法分析的任务就是在词法分析识别出正确的单词符号串是否符合语言的语法规则,分析并识别各种语法成分,同时进行语法检查和错误处理,为语义分析和代码生成做准备。1.3 地位 语法分析在编译过程...

2019-03-29 00:56:33 15393 3

原创 编译原理-词法分析器自动生成工具Lex

1.词法分析自动生成器概述 词法分析自动生成器基于正则表达式和有穷自动机理论。正则表达式是一个用数学表达式来描述一个单词集合的构成模式,而有穷自动机从识别的观点来看一个集合中的符号串是否被有穷自动机所识别。2. Lex2.1 Lex概述 Lex是一个基于正则表达式的描述来构造词法分析器的工具。它的输入是用Lex语言编写的源程序。在Lex中,...

2019-03-28 23:49:32 11291 1

原创 结构型模式-组合模式

目录1.组合模式概述1.1 定义1.2 作用1.3 应用场景1.4 分类1.4.1 透明组合模式1.4.2 安全组合模式2.类图3.角色4.案例4.1 说明4.2 创建4.3 分析5.优缺点5.1 优点5.2 缺点1.组合模式概述1.1 定义 在组合模式中通过多个对象形成树形结构以表示整体-部分层次。组...

2019-03-28 12:15:52 209

原创 结构型模式-桥接模式

1.概述1.1 定义 桥接模式的用意就是将抽象化与实现化进行解耦,将抽象部分与它的实现部分分离,使得它们都可以独立的变化。1.2 合成/聚合复用原则 合成和聚合都是关联的特殊种类,其原则就是尽量使用合成/聚合,尽量不要使用类继承。1.2.1 聚合 聚合表示一种弱的拥有关系,体现的是A对象可以包含B对象,但是B对...

2019-03-25 16:32:52 112

原创 结构型模式-装饰器模式

1.概述1.1 定义 在不改变原有对象的基础上,将功能附加到对象上(提供了比继承更有弹性的替代方案)。1.2 作用 装饰模式比继承更加灵活,它可以对客户透明的方式动态的给一个对象附加更多的责任。装饰模式可以在不需要创建更多子类的情况下,对对象的功能加以扩展。1.3 场景 在不影响其他对象的情况下,以动态、透明的方式给单个对象...

2019-03-25 01:06:28 123

原创 Android开发-ExpandableListView控件

目录1.ExpandableListView概述1.1 定义1.2 与ListView的区别1.3 应用场景2.常用属性2.1 groupIndicator2.2 childIndicator2.3 childDivider3.常用的方法3.1 setAdapter(ExpandableListAdapter adapter)3.2 setOnGroup...

2019-03-22 21:55:42 1162

转载 Android Studio 出现"Cannot resolve symbol R"的解决方法

出现这种情况的原因,主要是R文件缺失。R文件,即R.java,一般我们在布局中用到的,此R文件会保存在gen下面的某一个包下,具体在什么位置,这就要看项目的AndroidManifest.xml中的manifest下的package标签,解决方法:1:Build选项卡下的Clean Project或上面的Rebuild Project 。2:Tools -> "...

2019-03-22 11:17:09 4593

原创 Android开发-监听器

一共有四种监听方式:1.创建内部类 创建内部类,implements View.OnClickListener,并重写其onClick(View view)方法。public class SendBroadcastActivity extends AppCompatActivity { @Override protected voi...

2019-03-22 11:16:16 300

翻译 Android问题:ListView的listSelector失效

listSelector失效,原因可能是Listview的Item设置了背景。

2019-03-22 11:15:07 601

原创 Android开发-JSON

1.概述1.1 定义 JSON是一种轻量级数据交换格式,全称为Javascript Object Notation,采用完全独立于编程语言的文本格式来储存和表示数据。采用键值对key-value形式。1.2 数据结构数据结构 Obeject:对象形式 使用{}包含的键值对结构, key必须为String类型 value...

2019-03-22 11:14:24 143

原创 Android开发-Service(服务)

目录Android四大组件: 1. 服务的概念 1.1 概念1.2 适用场景1.3 继承结构图2. 服务的生命周期2.1 定义 Service拥有自己的生命周期,不会被捆绑,即便Activity销毁之后,Service也不会销毁。2.2 启动类型2.3 结构图2.4 方法3. 服务的创建3.1 创建类并继承Service ...

2019-03-22 11:14:01 14863

原创 UML-对象图

1.概念 对象图:对象图描述的是参与交互的各个对象在交互过程中某一时刻的状态。对象图是类图的实例,符号与类图非常相似。可以被看做是类图在程序执行的某一时刻的实例。 1)一个对象图主要集中在特定的对象实例和其槽,以及实例之间的连接。 2)同一个类图所对应的对象图可以有多个,多个对象图合在一起共同展示了随着时间的推移,在不同时间点系统的对象状态。 ...

2019-03-22 11:13:27 936

原创 UML-顺序图与通信图

UML有两种表达形式的交互图:顺序图和通信图,均可以完整的表达对象之间信息的交互过程,区别在于关注点不同: 顺序图:按时间顺序对消息的交互过程建模,展示的是按时间顺序发生的消息传送。 通信图:按对象关联对消息的交互过程建模,强调消息交互传递中对象之间的关联。一.顺序图(基于对象交互时的交互顺序)1.顺序图概念 用于捕获系统运行中对象之间...

2019-03-22 11:13:16 14629

原创 UML-状态图

基于状态的行为建模,对象既有行为又有状态,捕获对象所有可能发生的状态。1.概念 用来显示状态机的图,一个状态机可以用多张状态图描述。1)状态图与交互图的区别 交互图不显示对象所有可能的动态行为,只显示特定交互场景(一个具体的用例)中对象的行为。 状态图可以显示对象所有的动态行为。 笔 完整 折断两种状态,是由谁折断?只能由交互图看出...

2019-03-22 11:12:56 575

翻译 UML-活动图

基于活动的系统行为建模,关注工作流程,描述用例内部的工作流程。1.组成 UML活动图由4种元素组成:活动、动作、活动边和活动节点。 活动图 = 活动 + 动作 + 活动边 + 活动节点...

2019-03-22 11:12:39 376

原创 UML-构建(组件)图

组件图是对面向对象系统的物理方面建模时使用的两种图之一(另一种图是部署图),用于描述软件组件以及组件之间的组织和依赖关系。1.组成元素构成组件图的元素包括: 1)组件(component) 组件(Component) 组件是定义了良好接口且提供实现的一个物理部件 是指类的物理实现,表示将类、接口等逻辑元素打包而形成的物理模块。 它具有很广泛的定义,以下的一些...

2019-03-22 11:12:14 800

翻译 Java的List的复制问题

List浅拷贝众所周知,list本质上是数组,而数组的是以地址的形式进行存储。如上图将list A浅拷贝给list B,由于进行的是浅拷贝,所以直接将A的内容复制给了B,java中相同内容的数组指向同一地址,即进行浅拷贝后A与B指向同一地址。造成的后果就是,改变B的同时也会改变A,因为改变B就是改变B所指向地址的内容,由于A也指向同一地址,所以A与B一起改变。几种浅拷贝1、遍历循...

2019-03-22 11:11:47 2586 2

原创 Android开发-闪屏页实现

1.效果图 2.闪屏页逻辑及布局2.1 activity_splash.xml<?xml version="1.0" encoding="utf-8"?><FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="htt...

2019-03-22 11:11:26 4724 3

原创 网络协议-Http与Https

1.Http1.1 概述 Http(HyperText Transfer Protocol)全称超文本传输协议,是属于应用层的协议,基于TCP/IP的,所以它只是规定一些要传输的内容和头部信息,然后通过TCP协议进行传输,依靠IP协议进行寻址。 Http是无状态协议,对于事务处理没有记忆能力。1.2 Http请求流程1.建立TCP连接 2.浏览器向...

2019-03-22 11:10:58 452

原创 网络协议-概述

OSI,TCP/IP,五层协议的体系结构,以及各层协议OSI分层 (7层):物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。TCP/IP分层(4层):网络接口层、 网际层、运输层、 应用层。五层协议 (5层):物理层、数据链路层、网络层、运输层、 ...

2019-03-22 11:10:40 120

原创 Android开发-BroadcastReceiver(广播接收者)

1. 概述1.1 定义 在Android中,广播是一种可以跨进程的通信方式,运用在应用程序之间传递消息的机制,允许应用接收来自各处的广播消息,比如电话,短信等。同样,可以向外发出广播消息,例如电池电量低时会发送一条提示广播。要过滤并接收广播中的消息就需要使用BroadcastReceiver(广播接收者,Android四大组件之一)。 通过广播接收者可以...

2019-03-22 11:10:27 4160 1

原创 Android开发 - ContentProvider(内容提供者)

目录1.概述1.1 引入1.2 简介1.3 工作原理1.6 用法1.7 分类2.URI2.1 概念2.2 类别2.3 通配符2.4 使用UriMatcher匹配内容URI2.5 解析3.创建ContentResolver3.1 简介3.2 获取实例3.3 方法3.4 query()方法3.5 insert()方法3.6 ...

2019-03-22 11:10:16 1306

原创 Android开发-程序调试

目录1. 程序调试概念2. 单元测试 3. LogCat的使用(写日志)4. Debug的使用(断点)1. 程序调试概念 测试Android程序有多重方式,例如单元测试、LogCat(日志控制台)和Debug断点调试等。2. 单元测试 单元测试是指在应用程序开发过程中对最小功能模块进行测试,可以在完成某个功能之后...

2019-03-22 11:10:03 800

原创 Android开发-UI开发

目录Android UI开发1.布局的创建2.布局类型3.常用控件4.布局操作5 样式和主题6 国际化Android UI开发 UI(User Interface)界面即应用程序的界面。1.布局的创建 在Android程序中界面是通过布局文件设定的,在每个应用程序创建的时候都会默认包含一个主界面布局,该布局位于res/...

2019-03-22 11:09:53 2830

原创 Android开发-数据存储

1.数据储存1.1 储存方式种类 Android的储存有以下5种数据储存方式:文件储存、SharedPreferences、SQLite数据库、ContentProvider及网络储存。1.2 数据解析 对数据解析的方式有两种:XML解析,JSON解析。 2.文件储存 该储存方式是比较常...

2019-03-22 11:09:43 775

原创 Android开发-Handler

目录1. Handler定义1.1 主线程(UI线程)1.2 子线程1.3 Handler由来1.4 Handler的特点1.5Handler中分发消息的方法2. Handler实现及原理 2.1 Handler实现文件异步下载并更新进度条2.2 Handler异步缺陷:内存泄露及优化方法2.3 Handler静态优化:倒计时的实现3. Hand...

2019-03-22 11:09:31 260

原创 结构型模式-代理模式

目录1.概述1.1 定义1.2 作用1.3 应用场景2.类图3.角色4.分类5.实例1.概述 在一些情况下,客户端不想或者不能够直接引用一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用,去掉客户不能看到的内容和服务,或者增添客户需要的额外服务。 即客户端通过调用代理,来间接的调用实际的对象。1.1 定义...

2019-03-20 01:24:35 89

原创 结构型模式-适配器模式

目录1.概述1.1 定义1.2 作用1.3 应用场景2.类图2.1 类适配器模式类图2.2 对象适配器模式类图3.角色4.实例4.1 类适配器4.2 对象适配器5.3 两者的区分5.优缺点5.1 优点5.2 缺点1.概述1.1 定义 适配器模式(Adapter Pattern)将一个接口转换成客户希望的另一...

2019-03-19 22:35:52 283

Java飞机大战小游戏

Java飞机大战小游戏,通过Java swing和awt技术实现了飞机大战功能,包括击落敌机,计分,死亡,游戏暂停,重写开始,游戏背景等功能。下载导入eclipse即可运行。

2019-07-15

java电风扇,可以控制转速和方向

java制作的电风扇,可以控制转速和转动方向

2017-08-20

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除