自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

FooTyzZ

这个人很懒,什么都不留下

  • 博客(61)
  • 收藏
  • 关注

原创 设计模式之责任链模式

定义: 责任链模式,多个对象处理请求时,为了避免请求的发送者和接收者之间的耦合关系,将这些对象连成一条链。并沿着这条链传递该请求,直到有对象处理它为止。责任链模式的重点就在一个“链”字上,沿着这个条链处理这个请求,返回结果。观察者模式是一种行为型设计模式。模型角色:抽象处理者角色:抽象处理逻辑,定义一个方法设定和返回下一个处理者;具体处理者: 具体的处理请求逻辑。接到请求后可以选择处理掉请求,或者将请求传递给下一个处理者。责任链设计模式在我印象中最深的就是OkHttp中拦截链的设计。下面是添加

2021-04-21 23:51:10 217

原创 一个仿时钟自定义View例子

原项目地址: https://github.com/chenzongwen/MiClockView本篇主要是参照原项目记录自己动手实践的过程,需要看原作者项目的朋友请移步原项目地址。先看原项目的效果图:自己实现的效果图:OK开始编码流程。首先去分析一下这个view的组成部分。有外圈时针圈,文字,内圈的秒针刻度,分针,时针,秒针,动画效果,秒针移动时刻度盘的渐变效果。所以暂定这个view需...

2021-04-06 21:24:45 227

原创 设计模式之观察者模式

定义: 观察者模式也称发布/订阅模式。它定义对象间一种一对多的依赖关系,使得一个对象状态发生改变,所有依赖它的对象都能够得到通知并自动更新。观察者模式是一种行为型设计模式。模型角色:抽象主题角色: 即被观察对象,能添加,删除观察者,发出通知更新观察者。抽象观察者角色: 该接口为所有观察者定义了一个更新自己的方法。具体主题角色: 具体被观察者对象,保存了所有相关的观察者对象,当自身状态发生变化时,发出更新通知。具体观察者角色: 实现抽象观察者更新方法,根据被观察者改变自动更新。以一个时间+铃响

2021-03-31 23:57:30 171

原创 Activity主题应用不当导致TabLayout: Error inflating class android.support.design.widget.TabLayout

使用 TabLayout,Activity应用主题不当问题:起因:有个项目要使用一种比较古老风格(项目原因,而不是要做成这个古老)。呐,就是类似这种风格<图片1>所有的弹窗提示等都是这种风格。主题样式代码: <style name="ThemeNoTitle" parent="android:Theme"> //...省略代码// </style>后来引进TabLayout,在它的activity应用这种主题后,

2020-07-29 21:49:30 774

原创 设计模式之适配器模式

定义: 将一个类的接口变换成客户端所期望的另一种接口,使得原本因为接口不匹配而无法共同工作的两个类能够在一起工作。适配器模式是一种结构型设计模式。模型角色:目标角色: 要转换成的目标,通常声明为接口。适配者角色: 需要被转换成目标角色的角色。适配器角色: 将适配者转换成目标,是适配器模式的核心。通常使用继承或者类关联实现目标转换。场景模拟: 市场上有些手机是有充电孔跟耳机孔的(米max),有些是没有耳机孔只有充电孔的(米8)。现有一副耳机,对于有专门耳机孔的手机很容易就可以使用。但是没有耳机孔

2020-06-28 17:01:32 170

转载 Android debug设备响应迟钝: method breakpoints may dramatically... 处理方案

原文链接 https://blog.csdn.net/one1go/article/details/89645233最近开启debug模式发现设备响应超级慢,随之idea底部会出现黄色提示。如下图:实在忍不了了决定去处理一下。翻阅过后发现此法可行。如下:<以下为原文内容>这是在debug下弹出的黄底提示,根据提示,Ctrl + Shift + F8 查看断点发现红圈处加了多余的断点,导致卡住了。去掉以后就好了。...

2020-06-17 14:45:49 472

原创 设计模式之组合模式

定义: 也叫合成模式,将对象组合成树形结构以表示“部分-整体”的层次结构,使得用户对单个对象和组合对象的使用具体有一致性。组合模式是一种结构型设计模式。组合模式涉及的模型角色:抽象构件: 定义组合对象的共有方法和属性,规范默认接口。叶子构件: “叶子对象”,其以下没有其他分支,声明参与组合对象的行为接口。树枝构件: 参与组合对象、其下有分支的树枝对象。它的作用是将树枝和叶子组合成一个树形结构,并且定义出管理子对象的方法。场景模拟:一个很典型的例子就是电脑里的文件夹。在一个总文件夹里面有若干文

2020-06-10 14:45:00 228

原创 浅入Glide源码探索

分析源码版本为:com.github.bumptech.glide:glide:4.8.0总的思路就是加载图片的流程分析,主要是这些:Glide.with(this) //this 为activity。 .load("url") .into(view);先看Glide.with(this)。进入到with方法里面:进到 getRet...

2020-04-29 15:28:04 454

原创 属性动画

动画类型跟补间动画类型一样,但是补间动画只改变view的显示,并没有改变view本身。比如一个view在(200,300)- (200,500)的区域做平移动画(补间)。动画结束后肉眼看到view停留在(200,500)的地方,但实际上view本身还是在(200,300)的地方。这就是view本身(属性)没有改变的原因。属性动画将弥补这个缺点。属性动画又有objectAnimator与anim...

2020-04-24 14:12:52 242

原创 设计模式之命令模式

定义: 将请求封装成对象,使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销或者恢复功能。命令模式是一种行为型设计模式。角色模型:抽象命令角色模型: 一个声明了所有具体命令类的抽象接口,定义需要执行的命令;具体命令角色模型: 持有接收者实例,实现命令方法,在方法内调用接收者的行为;调用者: 负责调用命令对象执行请求;接收者: 负责具体执行请求;下面是一个使...

2020-04-03 10:11:22 143

原创 设计模式之状态模式

定义: 当一个对象内在状态改变时允许改变行为,这个对象像是改变了其类型。状态模式是一种行为型设计模式。抽象状态角色 : 封装抽象行为的接口;具体状态角色 : 实现一种状态下对应的具体行为;环境角色 : 持有状态类的实例,返回当前状态并负责具体状态的切换,挺像一个管理器的嗷。举个例子,一天有24小时,以每个小时为一种状态,记录每种状态下要做的事情://抽象状态,只有一个行为:查看当前在...

2020-03-17 23:42:53 126

原创 Android中使用到的adb命令

0、进入shell模式(linux环境)adb shell1、查看应用进程相关信息:adb shell (如果之前执行过shell可以不用再次执行adb shell)ps|grep com.***.***(应用包名)例子:可以看到有这样的一行输出:u0_a49 14123 166 711528 29124 ffffffff 400fc748 S co...

2020-03-14 00:11:49 353

原创 设计模式之外观模式

定义: 每个子系统的外部与其内部的通信必须通过同一个对象进行。即提供一个访问子系统的的接口,只有通过这个接口才能访问子系统的行为。外观模式又成为门面模式,是一种比较简单的设计模式。外观模式是一种结构型设计模式。涉及到的结构模型:外观角色 : 为众多的子系统提供一个公共的访问接口,该角色没有实际的业务逻辑,只是一个委托类。子系统角色 : 完成系统功能众多类的集合体,而不是指一个类。下面用一...

2020-03-10 23:09:53 160

原创 设计模式之装饰模式

定义: 指在不改变现有对象结构的情况下,动态地增加对象额外功能。属于对象结构型设计模式。装饰模式的模型角色:抽象产品模型: 具体产品与抽象装饰的父类,一般使用接口定义;具体产品模型: 实现抽象产品,提供抽象产品的具体实现,也是升级产品(具体装饰)基本模型;抽象装饰模型: 实现抽象产品,持有需要升级的产品(具体产品)的实例;具体装饰模型: 具体产品的升级版,有具体产品的功能。继承抽象装饰...

2020-03-06 09:17:17 150

原创 设计模式之桥接模式

定义: 将抽象与实现解耦,使得俩者可以独立的变化。这种模式将抽闲部象与实现部分联系起来,就像是一座桥,将桥的两岸连接,构成一个整体。桥接模式是一种行为型设计模式。桥接模式的4个模型角色:抽象化角色模型: 抽象角色,持有实现化角色引用;具体抽象化模型: 继承至抽象化角色,实现抽象化角色定义的方法逻辑并扩展自己本身的特性;实现化角色模型: 通常声明为接口,提供对应的逻辑方法;具体实现化角...

2020-03-05 16:28:43 179

原创 Arouter代替startActivity实现页面间跳转

开始配置:在build.gradle文件中:android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments = [AROUTER_MODULE_NAME: project.ge...

2020-03-03 23:44:57 1126

原创 设计模式之备忘录模式

备忘录模式 定义:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,以便以后当需要时能将该对象恢复到原先保存的状态。模型角色:备忘角色: 本身需要恢复到某一时刻状态,提供创建备忘录和恢复备忘录的基本功能;备忘录管理角色: 管理备忘录,保存或者返回备忘录;备忘录角色: 备忘录对象,记录备忘角色的某种状态,提供这些状态;应用场景:需要用到保存数据并且能够恢...

2019-11-18 23:29:46 158

原创 数据结构之树

前面有讲到数组跟链表的数据结构。二者都有优缺点。数组插入太慢,链表查询太慢,就想有没有这样一种数据结构,既能像链表那样快速地插入删除,又能像数组那样快速查找。于是树这种数据结构就诞生了。树是由边跟节点构成。如下图。一棵树的每个节点可以有一个或多个子节点,或者没有子节点。每个节点最多有2个子节点的的树叫做二叉树。二叉树的左右2个子节点分别叫做左子节点,右子节点。每个节点的...

2019-10-31 23:37:38 352

原创 数据结构之享元模式

享元模式 “共享单车”定义: 使用共享对象可以有效地支持大量的细粒度的对象。享元对象做到共享的关键是区分内部状态和外部状态。可以降低大量重复的,细粒度的类在内存中的开销。也是一种行为型模式。4个模型角色:抽象享元角色: 享元对象的父类,提供具体享元模型的公共逻辑接口。需要外部状态操作时可以通过参数的形式将外部状态传入;具体享元角色: 实现抽象享元接口,提供具体的逻辑处理;享元工厂:...

2019-10-29 11:06:04 217

原创 数据结构之建造者模式

定义: 将一个复杂对象的构建与他的表示分离,使得可以使用同样的构建构成构成不同的表示。4种模型:产品模型: 特定的产品,具有复杂的组成部分,需要建造的实例;抽象建造者: 规范产品模型的各个组成部分,并进行抽象;具体建造者: 实现抽象建造模型的所有方法,并且提供一个创建好的产品对象;导演者(或生产者)模型: 负责产品部分建造的顺序;应用场景:相同的方法,不同的执行顺序产生不同的...

2019-10-28 21:12:02 146

原创 设计模式之策略模式

策略模式定义:针对对一组算法,将每一个算法封装到具有公共接口的独立类中,使得他们可以相互替换,可以在不影响到客户端情况下发生改变。策略模式是一种行为型设计模式。模式模型:抽象策略模型:定义为公共接口,声明策略; 具体策略:实现抽象策略模型,提供具体的策略计算逻辑; 环境模型(策略持有者):包含策略模型引用,策略方法的调用等,可以是独立的一个类也可以就是调用策略本身对象。抽象策略只是作...

2019-10-25 16:02:45 225

原创 常用ASCII码字符对照表

ASCII码(十进制) 字符 ASCII码(十进制) 字符 ASCII码(十进制) 字符 ASCII码(十进制) 字符 97 a 65 A 32 (空格) 58 : 98 b 66 B 33 ! 59 ; 99 c 67 C 3...

2019-09-23 15:23:47 7215

原创 MarkDwon语法学习

哈哈哈这是标题哈哈哈这是标题哈哈哈这是标题哈哈哈这是标题哈哈哈这是标题无序列表这是列表1这是列表2这是列表3这是列表4有序列表(.后面要有俩个空格)有序列表有序列表有序列表 P标签为空行 空行 缩进 4 个空格或是 1 个制表符表示为代码块,与上一行添加个换行符:protected void onDestroy() { super.onDestr...

2019-09-21 11:18:29 239

原创 Groovy基础知识三

十九、XML解析groovy中也是存在数据解析的。比如xml,gson等等解析数据。groovy中的xml解析使用MarkupBuilder对象。下面是一个生成一段xml的例子:def mB = new MarkupBuilder()mB.collection(aaaaa: '开始解析了') { movie(title: 'Enemy Behind') type('...

2019-09-09 22:19:30 337

原创 Groovy基础知识二

十八、闭包1.闭包简单介绍闭包是一个短的匿名代码块,一个方法甚至可以将代码块作为参数。它们是匿名的。闭包也使用参数和外部变量。例子1(无参数闭包): def closer = { println "这是一个闭包" }例子2(有参数闭包):def closer2 = { name -> println name }如果闭包参数只有一个的情况下,参数可以省略,使用闭包中的隐式参...

2019-08-31 16:59:42 343

原创 Groovy基础知识一

一、概述构建在强大的Java语言之上 并 添加了从Python,Ruby和Smalltalk等语言中学到的 诸多特征,例如动态类型转换、闭包和元编程(metaprogramming)支持二、环境没有特意去官网下载必要的组件。基于android studio并且使用idea来使用非常简便。三、特点概述基于java,也是面向对象的;借鉴Python,Ruby,Smalltalk等语...

2019-08-20 23:21:49 1321

原创 记录一个异常:Write access is allowed from event dispatch thread only

异常信息就这么一点,没碰见过根本没有头绪,只能从网络上寻找解决方案了。Error:Failed to complete Gradle execution. Cause: Write access is allowed from event dispatch thread only.处理方案:在编译器里找 File -> Project Structure里,重新设置下JDK的路径...

2019-07-30 17:32:00 860

转载 正则表达式大全

原文地址: http://blog.csdn.net/gdutxiaoxu/article/details/77800756java 正则表达式常用的字符说明常用的正则表达式java 正则表达式...

2019-07-29 16:11:11 511

原创 GreenDao数据库升级处理

使用GreenDao框架创建数据库,当App升级数据库也要升级时,GreenDao默认情况下是删除原表,创建新表。这样原来的数据就无法保存了;另一种比较友好的方式就是数据库迁移了。这里有个不错的工具类来处理数据库迁移。(方法来源网上其他大佬博文,原创是哪位大佬就不知道[捂脸])。如何使用请移步。/** * * please call {@link #migrate(SQLiteDat...

2019-07-26 11:23:23 287

原创 Greendao快速使用

目录索引1.依赖添加2.数据库创建与升级3.实体类编写4.使用数据库5.QueryBuilder 自定义实体查询Api1.依赖添加在根目录下的build.gradle添加配置:buildscript { repositories { google() jcenter() } dependencies { ...

2019-07-26 11:20:40 651

原创 设计模式之代理模式

代理模式,为其他对象提供一种代理来控制这个对象的访问。生活中有很多这样子的例子。如果你喜欢购物,相信你对代购不会陌生。那么你去找到代购,代购为你买回来商品这样行为方式就 是一种代理模式。如果你喜欢玩游戏你又不想自己亲手或者技术有限,你去找到代练,让他们为你上分,升级,这样的行为方式也是一种代理模式。在代理模式下涉及到的角色模型:抽象行为模型:通常使用接口实现。由代理类跟代理角色共同实现,定义了...

2019-06-20 10:46:45 236 1

原创 Android UI之动画(补间)

Animation,动画。是androidUI上的一个重要组成部分。在android上有4种动画效果,分别是scale,alpha,rotate,translate。对应中文名称:scale 放缩动画 alpha 透明度动画 rotate 旋转动画 translate 位移动画 说到动画,最开始接触的也是最简单的相信很多人都是从xml开始的(本人在开始学...

2019-06-17 22:18:16 390

原创 设计模式之抽象工厂模式

抽象工厂模式意为提供一个可以创建一组或者相关的对象的接口,跟工厂模式很相似,工厂模式创建的是同种类别下的不同产品,抽象工厂是创建多种相关类别下的不同产品。比如工厂模式是鱼,那么它对应产品可以是鲤鱼,草鱼,鲸鱼。而放到抽象工厂模式,它就不只是可以创建鱼这一类,还可以是藻类,如红藻,绿藻。还可以是鱼生活的地方,如海洋,河流,池塘,油锅。抽象工厂的模型角色跟工厂模式模型一样:1.抽象工厂:模式核心,...

2019-05-28 14:00:38 122

原创 设计模式之工厂方法模式

工厂模式是一种创建型设计模式。定义一个用与创建对象的接口,让子类实现决定创建哪一个类,使类的实例化延迟到它的子类。工厂模式的模型角色:1.抽象工厂:模式核心,所有具体工厂都要实现这个接口。包含创建同种类别产品的方法 2.具体工厂:实现抽象工厂,根据具体需要创建具体产品对象。 3.抽象产品:定义产品的共性。 4.具体产品:具体的产品,拥有所有产品的共性,也拥有自己的特性。以去饮料店买的饮...

2019-05-17 17:21:54 163

原创 设计模式之原型模式

原型模式就是用已存在的对象实例,通过复制该实例生成一个相同或类似的对象。而且使用原型模式非常高效简便。实现思路:在java下,所有的类的超类Object有提供对象的clone()方法,所以使用java实现这种原型模式还是比较简单的。涉及到的模型角色:1.抽象原型:由接口实现,继承至Cloneable接口,给出所有具体原型需要的接口,至少有一个clone 的方法; 2.具体原型:继承抽象原...

2019-05-16 21:02:19 124

原创 设计模式之单例模式

单例模式是最常见,最容易理解的一种设计模式。它保证了应用内一个类只存在一个实例。可以节省内存资源,避免了频繁地创建销魂同一个对象,提高性能。单例模式最基础的有2种写法。分别是懒汉式跟饿汉式。懒汉式:public class Single { private Single(){} private static Single instance = null; /*...

2019-05-15 21:00:24 217 2

原创 数据结构系列之栈

栈是一种常见的数据结构,它只能在一端进行数据的插入,移除操作。用于操作的这一段端通常叫做栈顶。栈因为只有一个操作端所以它的数据存取特点是先进后出。即先入栈的元素后出栈。实现栈有两种方式,一种是使用数组实现,一种是使用链表实现。下面是栈的简单示意图,以及出栈,入栈示意图:数组实现数组实现的栈,java已经实现了这样一种数据结构,就是Stack类,继承于vector。下面分...

2019-04-28 17:46:30 325

原创 RxJava2.x之辅助操作符

do系列doOnEach : Observable每发射一项数据就会调用它一次。如果传入的是Observable参数,那么它的所有方法也会调用。就好像它订阅了原始的Observable一样。 doOnNext : 在下游onNext之前注册一个动作,然后回调动作里面的方法 doOnComplete在下游OnComplete之前注册一个动作,然后回调动作里面的方法 doOnError...

2019-04-27 10:40:05 208

原创 数据结构系列之集合

集合是一种应用广泛的数据集合容器。是一种可以自动增长的添加重复元素的顺序存储的线性结构类型。先看一下List继承接口Conllection关系结构关系图:Conllection接口是list 的最顶层接口,list 本身也是一个接口。起源除了 Vector ,Stack 是1.0版本,Queue是1.5版本外,其余均是在1.2版本添加的。使用list 时 通常会联想到另...

2019-04-25 17:03:46 318

原创 RxJava2.x之结合操作符

combineLatest当2个(最少2个)Observables中的任何一个发射了数据时,使用一个聚合函数结合每个Observable发射的最近数据项,并且基于这个函数的结果来发射数据。先看这个操作符需要的参数,因为这个操作符可以根据一个函数来结合每个Obserbable发射的数据,但它最多传入9个Observable,这里取样为最简单的2个Observable跟一聚合个函数:Obs...

2019-04-24 18:05:38 1588

空空如也

空空如也

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

TA关注的人

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