- 博客(35)
- 收藏
- 关注

原创 OKHttp的基本使用和简单封装
1.写在前面: 网络请求框架层出不穷,像google的volley,xutils等等。听说Okhttp性能很高,最近写新项目,决定用Okhttp来尝试一下(原谅我是小白,第一次使用,以前还是用volley),以此来记录一下自己的心得。2.首先来介绍一下Okhttp: Okhttp出自鼎鼎大名的Square,官方github地址:https://github.com/square
2017-02-04 15:53:12
7219
4
原创 仿人民日报客户端app报纸版面-Android
仿人民日报客户端报纸版面,首先来看下人民日报app的效果图如图所示,进入报纸页面会显示报纸的缩略图,每篇文章是一个版块,当点击该文章时,文章所在区域会被阴影覆盖,模拟用户选中效果,松开手指会进入文章详情页,本篇文章我们主要来介绍这个阴影效果是如何实现的。接口数据分析:注:该数据通过抓包获取,只用作学习使用,本文中不公布接口,只使用其数据。以2019年4月13日数据为例,data为包含8...
2019-11-22 13:23:09
1991
2
原创 《Android源码设计模式》之中介者模式
中介者模式介绍访中介者模式的定义封装中介者模式的使用场景(1)中介者模式的UML类图中介者模式的简单实现总结访
2019-04-17 02:00:24
273
原创 《Android源码设计模式》之访问者模式
访问者模式介绍访问者模式是一种将数据库操作与数据结构分离的设计模式,它是所有设计模式中最复杂的一个,但是使用频率并不高。访问者模式的基本想法是,软件系统中有用一个由许多对象构成的、比较稳定的对象结构,这些对象的类都有一个accept方法用来接受访问者对象的访问。访问者是一个接口,它拥有一个visit方法,这个方法对访问到的对象结构中不同类型的元素作出不同的处理。在对象结构的一次访问过程中,我没遍...
2019-04-16 01:05:24
205
原创 《Android源码设计模式》之模板方法模式
模板方法模式介绍迭模板方法模式的定义提供一模板方法模式的使用场景遍历模板方法模式的UML类图模板方法模式的简单实现小民和小辉分别在总结对...
2019-04-14 00:13:32
164
原创 《Android源码设计模式》之迭代器模式
迭代器模式介绍迭代器模式(Iterator Pattern)又称为游标(Cursor) 模式,是行为型设计模式之一。我们对容器对象的访问必然会涉及遍历算法,如果我没将遍历方法封装到容器中,那么对于容器类来说就承担了过多的功能,容器类不仅要维护自身内部的数据元素而且还要对外提供遍历的接口方法,因为遍历状态的存储问题还不能对同一个容器同时进行多个遍历操作,如果我们不提供遍历方法而让使用者自己去实现,...
2019-04-13 01:53:18
235
原创 《Android源码设计模式》之备忘录模式
备忘录模式介绍备忘录模式是一种行为模式,该模式用于保存对象当前状态,并且在之后可以再次恢复到此状态。备忘录模式实现的方式需要保证被保存的对象状态不能被对象从外部访问,目的是为了保护好被保存的这些对象状态的完整性以及内部实现不向外暴露。备忘录模式的定义在不破坏封闭的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样,以后就可将该对象恢复到原先保存的状态。备忘录模式的使用场景(...
2019-04-12 01:23:54
235
原创 《Android源码设计模式》之观察者模式
观察者模式介绍观察者模式是一个使用率非常高的模式,它最常用的地方是GUI系统、订阅----发布系统。因为这个模式的一个重要作用就是解耦,将被观察者和观察者解耦,使得它们之间的依赖性更小,甚至做到毫无依赖。观察者模式的定义定义对象间一种一对多的依赖关系,使得每当一个对象改变状态,则所有依赖于它的对象都会得到通知并被自动更新。观察者模式的使用场景关联行动场景,需要注意的是,关联行为是可拆分...
2019-03-20 11:31:29
274
原创 《Android源码设计模式》之命令模式
命令模式介绍命令模式(Command Pattern)是行为型设计模式之一,命令模式相对于其他的设计模式更为灵活多变。我们接触比较多的命令模式个例无非就是程序菜单命令,如在操作系统中,我们点击“关机”命令,系统就会执行一系列的操作,如先是暂停处理事件,保存系统的一些配置,然后结束程序进程,最后调用内核命令关闭计算机等,对于这一系列的命令,用户不用去管,用户只需点击系统的关机按钮即可完成如上一系列...
2019-03-19 17:51:03
540
原创 《Android源码设计模式》之解释器模式
解释器模式介绍 解释器模式 解释器模式的定义 给定一个语言解释器模式的使用场景 解释器模式的使用场景其实相当广泛,总的概括下来大致有如下两种:解释器模式的UML类图解释器模式的简单实现 举个例子, 解释器模式实战 Android中我们可以借鉴责任链模式的思想来优化BroadcastReceiver使之成为一个全局的责任链处理者,具体方法很简单,...
2019-03-13 16:59:13
245
原创 《Android源码设计模式》之责任链模式
责任链模式介绍 责任链模式(Iterator Pattern),是行为型设计模式之一。什么是“链”?我们将多个节点首尾相连所构成的模型称为链,比如生活中常见的锁链,就是由一个个圆角长方形的铁环串起来的结构。对于链式结构,每个节点都可以被拆开再连接,因此,链式结构也具有很好的灵活性。将这样一种结构应用于编程领域,将每一个节点看作是一个对象,每一个对象拥有不同的处理逻辑,将一个请求从链式的首端发
2018-05-10 17:22:35
690
原创 《Android源码设计模式》之状态模式
状态模式介绍 状态模式中的行为是由状态来决定的,不同的状态下有不同的行为。状态模式和策略模式的结构几乎完全一样,但它们的目的、本质却完全不一样。状态模式的行为是平行的、不可替换的,策略模式的行为是彼此独立的、可相互替换的。用一句话来表述,状态模式把对象的行为包装在不同的状态对象里,每一个状态对象都有一个共同的抽象状态基类。状态模式的意图是让一个对象在其内部状态改变的时候,其行为也随之变化。状态模式
2018-05-04 17:01:56
631
原创 《Android源码设计模式》之抽象工厂模式
抽象工厂模式介绍 抽象工厂模式(Abstract Factory Pattern),也是创建型设计模式之一。之前介绍过工厂方法模式,那么这个抽象工厂又是怎么回事呢?抽象工厂模式起源于以前对不同操作系统的图形化解决方案,如不同操作系统中的按钮和文本框控件其实现不同,展示效果也不一样,对于每一个操作系统,其本身就构成一个产品类,而按钮与文本框控件也构成一个产品类,两种产品类两种变化,各自有自己的特性,
2018-04-02 17:54:26
434
原创 《Android源码设计模式》之工厂方法模式
工厂方法模式介绍 工厂方法模式(Factory Pattern)是创建型设计模式之一。工厂方法模式是一种结构简单的模式,其在我们平时开发中应用很广泛,如Android中的Activity里的各个生命周期方法就可以看作是一个工厂方法。工厂方法模式的定义 定义一个用于创建对象的接口,让子类决定实例化哪个类。工厂方法模式的使用场景 在任何需要生成复杂对象的地方,都可以使用工厂方法模式。复杂对象适合使
2018-03-27 16:47:35
1190
原创 《Android源码设计模式》之原型模式
原型模式介绍 原型模式是一个创建型的模式。原型二字表明了该模式应该有一个样板实例,用户从这个样板对象中复制出一个内部属性一致的对象,被复制的实例就是我们所称的“原型”,这个原型是可以定制的。原型模式多用于创建复杂的或者构造耗时的实例,因为这种情况下,复制一个已经存在的实例可以使程序运行更高效。原型模式的定义 用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象原型模式的使用场景(1)类初
2018-03-16 17:38:21
214
原创 《Android源码设计模式》之Builder模式
Builder模式介绍 Builder模式是一步步创建一个复杂对象的创建型模式,它允许用户在不知道内部构建细节的情况下,可以更精细地控制对象的构造流程。该模式是为了将构造复杂对象的过程和它的部件解耦,使得构建过程和部件的表示隔离开来。Builder模式定义 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。Builder模式的使用场景(1)相同的方法,不同的执行顺序,产生
2017-08-26 16:11:23
283
原创 《Android源码设计模式》之单例模式
单例模式是应用最广泛的模式之一,在这个模式中,单例对象的类必须保证只有一个实例存在。因为好多时候创建多个实例是没有意义的而且很消耗资源,所以用单例模式最佳。 单例模式定义:确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。 使用场景:确保某个类只有一个对象的场景,避免产生多个对象消耗过多的资源,或者某种类型的对象只应该有且只有一个。 实现单例模式主要有如下几个关键
2017-07-22 13:38:41
246
原创 《Android源码设计模式》之面向对象的六大原则
1.优化代码第一步——但以指责原则 单一职责原则的英文名是Single Responsibility Principle,缩写是SPR,SPR的定义是:就一个类而言,应该仅有一个引起它变化的原因。简单来说,一个类应该是一组相关性很高的函数、数据的封装。我的理解就是每个方法、类等的职责功能越单一越好,这样可以降低耦合。2.让程序更稳定、更灵活——开闭原则 开闭原则的英文全称是Open
2017-07-13 21:45:51
216
原创 ViewPager禁止滑动
相信做Android开发的小伙伴都做过导航标签吧,效果如下: 要说怎么实现,很多人会想到使用TabLayout + ViewPager实现(当然实现方式不止这一种),但是ViewPager是可以滑动切换标签的,如果需求是要求不能滑动切换标签而只能点击切换,那么你可以会说那就不用ViewPager,而用Fragment实现不也行吗?那样是可以实现,可是使用ViewPager就不行了吗?当然不是,
2017-06-30 16:51:21
624
原创 Android开发之获取网络类型(WIFI、2G、3G、4G)和运营商名称
在Android开发中,常常使用到网络,可能需要针对不同的网络(WIFI或者流量),需要做不同的处理,那么怎么获取当前网络呢?为此写了个工具类,以后需要使用,直接拿来用就行(就喜欢拿来主义,哈哈)。package com.wangguifa.phonestate;import android.content.Context;import android.net.ConnectivityManage
2017-05-22 17:21:58
21551
1
原创 Material Design之Toolbar的简单使用
Toolbar也是在一个 Material Design 风格的导航控件 ,以此来取代之前的 Actionbar 。与 Actionbar 相比, Toolbar 明显要灵活的多,可以添加导航栏图标 、 App的logo 、 标题和子标题 、 自定义控件 、以及 ActionMenu等,效果图如下: 那么我们就来学习一下如何使用它吧。一、按照惯例,先创建项目,然后添加v7的依赖包compile
2017-04-14 14:16:30
618
原创 Material Design之侧滑菜单DrawerLayout+NavigationView的使用
Material Design的控件感觉很不错,今天我们来学习下DrawerLayout+NavigationView实现侧滑菜单,以前你可能自己写过侧滑菜单,也可能用过slidingmenu或者其他开源库,但是google现在也在Material Design中提供了这样的控件,我们可以直接使用了,下面先看下效果: 一、按照惯例,先创建项目然后引入design的依赖包compile 'c
2017-04-06 15:39:49
1154
原创 Material Design之导航栏TabLayout的使用
Material Design是非常强大的,它包含了很多很好的控件,今天我们来学习下TabLayout导航控件,可以用作底部导航,也可以用做底部标签页切换,这样就不用我们自己去一点点写代码实现这种功能了,下面先看下效果:一、按照惯例,先创建项目然后引入design的依赖包compile 'com.android.support:design:25.3.1'二、添加布局文件Rela
2017-03-31 17:17:59
805
原创 Material Design之输入框TextInputLayout的使用
Material Design推出已经有快两年了,很喜欢它的效果,今天我们来看一下TextInputLayout,首页看下效果图:
2017-03-31 10:27:57
1519
原创 Android Studio Multidex 解决方法数超65k限制
当项目越写越大,使用的三方库越来越多,方法数也越来越多也随之增加,这时,可能会突然运行不起来,然后报如下错误: 从Log的最后能发现一个数字65536,这就是解决问题的关键。因为在Dalvik指令集里,method reference index只给了16bits,最多只能调用65535个方法,所以在生成dex文件的过程中,方法数超过65535就会报错。此Log中指出mehtod ID n
2017-02-10 10:24:19
893
原创 Material Design之导航栏BottomNavigationView的使用
Android底部导航栏非常常见,很多项目都有使用。其实现方式也有很多种,TabHost、LinearLayout中使用button、RadioGroup等等,都可以实现这种导航栏的效果。随着Material Design的发展,也逐渐推出了一些自己的设计,BottomNavigationView是其中一个,个人觉得很好看,先贴一下效果图: 下面来看下BottomNavigationView
2017-02-08 15:41:37
7914
4
原创 新年新气象
新年新气象新年后第一天上班,感觉还是昏昏沉沉,还停留在假期中。不过时间不等人,新的一年该有新的计划和目标,并为之努力奋斗。去年就打算写博客了,但是迟迟没有动手写,一方面感觉自己还没准备好,另一方面还是自己懒,但是今天必须得迈出第一步了,否则写博客的计划终究是计划,永远不能落地。我不是分享多么牛逼的技术,因为我只是小菜鸟一只,写博客只是用来记录自己学习和工作中遇到的一些好玩的、有用的东西,以
2017-02-03 14:32:15
357
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人