- 博客(70)
- 资源 (34)
- 收藏
- 关注
原创 android Service在8.0以及通知栏不显示的问题
android系统在8.0以后Service无法正常使用,在低版本上面不会出现问题,这是因为在后台中运行的服务会消耗设备资源,这可能降低用户体验。 为了缓解这一问题,系统对这些服务施加了一些限制。系统可以区分 前台 和 后台 应用。(用于服务限制目的的后台定义与内存管理使用的定义不同;一个应用按照内存管理的定义可能处于后台,但按照能够启动服务的定义又处于前台。)如果满足以下任意条件,应用将被视为...
2018-12-11 17:54:33
5518
2
原创 android6.0动态权限申请
已经有一年多没有写博客了,主要就是忙。自己独立开发的确有点累,很多东西都要自己去脑补,遇到问题也没有可商量的同事,所以只能自己想办法解决。闲话少说,言归正传!6.0动态权限的申请已经有很长时间了,网上也有很多案例,应某些人要求,这里我只是提供下我自己的见解!之所以会有动态权限的申请,还是因为android手机做的越来越安全了,也越来越人性化了,同时对开发者来说是越来越麻烦了。有些涉及到用户的隐...
2018-12-11 17:12:13
966
原创 Android 自定义可以滑动和点击的RangeBar
由于项目的需要实现可以滑动和点击的效果,就在网上搜了一下,发现基本上都是可以滑动的,于是自己就在别人的基础上进行了一系列的修改。做成的效果图如下 其实要想实现上面的效果并不是很难,只需要懂一些自定义即可。 关于自定义前面已经详细的介绍过了点击前往Android自定义控件,还有就是所谓的自绘控件点击前往冠以自绘控件。 由于时间有限,先介绍这么多,具体的实现稍后详细介绍。点击下载源码
2017-05-17 10:32:47
2176
原创 Android GreenDao实现CRUD和升级详解
我们不论在学习Android还是在开发应用的过程中或多或少的会接触到一些SQLite。增(insert)、删(delete)、改(update)、查(query),当然如果我们在使用的过程中想要添加字段的话,离不了数据库的升级(onUpgrade)。下面我们就使用GreenDao来实现我们的增删改查以及数据库的升级。 点击前往greenDAO官网 GreenDao的有以下优点: 性能最大化
2017-03-14 15:51:37
5827
原创 设计模式——责任链模式
什么都不说了,先来一张图看看今天我们要介绍的东西,跟下面的东西还是有关的,那就是一个链字,下图是一个项链,而我要介绍的则是责任链模式。 责任链模式就是:将能够处理同一类请求的对象连成一条链,所提交的请求沿着链传递,链上的对象逐个判断是否有能力处理该请求,如果能处理则处理,如果不能处理则传递给链上的下一个对象。 责任链模式的适用性: 1.有多个的对象可以处理一个请求,哪个对象处理该请求运行时
2017-03-02 18:11:42
770
原创 设计模式——状态模式
状态在我们的生活中是很常见的,比如我们交通使用的红绿信号灯,有红、黄、绿三种状态。其实我们的衣食住行都是状态,比如火车的启动,运行,暂停,状态几乎是无处不在。下面我们来看一个大家再熟悉不过的状态图 想必大家也都知道这几种状态的意义了。其实在我们程序里面状态也是很常见的,比如我们经常使用的switch语句就是最好的说明,case后面的值就是我们所说的状态值,线程的五种状态:新建状态、就绪状态、运
2017-03-01 14:11:40
870
原创 设计模式——观察者模式
下面我们就来介绍一下行为型模式之一的观察者模式。观察者模式主要用于1对N的通知,当一个对象发生(被观察者)改变时,它需要发出一系列的通知,告知其它的对象(观察者)做出相应的变化。我们所熟悉的广播就是最好的观察者模式。 观察者模式的主要组成: 抽象被观察者角色:把所有对观察者对象的引用保存在一个集合中,每个抽象主题角色都可以有任意数量的观察者。抽象主题提供一个接口,可以增加和删除观察者角色。一般用
2017-02-28 14:53:26
897
原创 设计模式——享元模式
享元模式里面的享则共享的意思,很明显就是共享资源,作用也就很明显运用共享技术有效地支持大量细粒度的对象。如果有很多歌完全相同或相似的对象,我们就可以通过共享模式来节省内存。 享元对象能做到的共享的关键是区分了内部状态和外部状态。内部状态:可以共享,不会随环境变化而改变。外部状态:不可以共享,会随环境变化而改变。共享单车想必大家都很熟悉吧。共享单车其实也是享元模式的体现。单车的颜色,形状,大小,重量
2017-02-27 16:45:04
644
原创 设计模式——装饰模式
装饰的意思想必大家也都知道,就是起修饰美化作用的物品,比如装修效果图造型的轮廓和雕刻装饰;在身体或物体的表面加些附属的东西,使之更美观。在应用程序里面装饰模式也是很有用武之地的。装饰模式的职责:动态的为一个对象添加新的功能。装饰模式是一种用于代替继承的技术,没有必要通过继承增加子类就能扩展对象的新功能。使用对象的关联关系代替继承关系,更加灵活,同时避免类型体系的快速膨胀。 装饰模式的适用性: 1
2017-02-27 12:18:59
658
原创 设计模式——外观模式
外观模式在我们的项目中使用的还是比较普遍的。外观模式遵守了设计模式六大原则之一的迪米特法则(最少知识法则),一个应用实体应当尽可能少的与其他实体发生相互作用。 外观模式的实用性: 1.为一个复杂子系统提供一个简单接口。 2.提高子系统的独立性。 3.在层次化结构中,可以使用外观模式定义系统中每一层的入口。 举个例子:这个例子跟代理模式里面的例子一样还是关于接项目的事情,假如说我在北京工作,
2017-02-26 16:53:58
837
原创 设计模式——组合模式
组合模式就是将对象组合成树形结构以表示”部分-整体”的层次结构,使得用户对单个对象和组合对象的使用具有一致性。组合模式的核心包括抽象构件、叶子构件和容器构件。抽象构件角色:定义了叶子构件和容器构件的共同点。叶子构件角色:无子节点。容器构件角色:有容器特征,可以包含子节点。看了下面的图大家就明白什么是容器和叶子了。 组合模式的适用性 1.你想表示对象的部分-整体层次结构。 2.你希望用户忽略
2017-02-24 16:33:08
1101
1
原创 设计模式——桥接模式
桥接模式就是将抽象部分与它的实现部分分离,使它们都可以独立地变化。桥接模式在我们的日常生活中还是很普遍存在的。尤其是在商场里面,我们常见的商品分类就是最好的桥接模式。 适用于 1.你不希望在抽象和它的实现部分之间有一个固定的绑定关系。 例如这种情况可能是在程序运行时刻实现部分应该可以被选择或者切换。 2.类的抽象以及它的实现都应该可以通过生成子类的方法加以扩充。
2017-02-23 15:40:17
1154
原创 设计模式——代理模式
代理对于我们来说再熟悉不过了,比如:代理商,代理律师。那么代理的到底是什么含义呢?代理就是受委托代表当事人进行某种活动。那么代理模式的核心作用是什么呢?就是通过代理,控制对象的访问。可以详细的控制访问某个或者是某类对象的方法,在调用这个方法前做前置处理,调用这个方法后做后置处理。 代理是在需要用比较通用和复杂的对象指针代替简单的指针的时候,使用代理模式。 下面是一些可以使用代理 模式常见情况:
2017-02-21 18:48:15
945
原创 设计模式——适配器模式
适配器模式就是将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 适配器模式分为两种,一种是类适配器模式,一种是对象适配器模式(也就是跟我们的组合模式配合使用) 适用性: 1.你想使用一个已经存在的类,而它的接口不符合你的需求。 2.你想创建一个可以复用的类,该类可以与其他不相关的类或不可预见的类(即那些接口可能不一定兼容
2017-02-20 15:43:39
718
原创 Android 水波纹显示进度效果
关于水波纹的效果想必大家见的已经很多了,我就在这里再啰嗦一次,为了加深自己的印象。先来看看效果图 关于这个效果的实现不必想的太过复杂了,要想实现这个效果,我们还需要了解一下PorterDuff及Xfermode 关于上面的这张图想必大家也见过很多次了。这其实就是PorterDuff的16种模式。效果想比大家已经见到了,下面我们就来一一了解如何使用。 PorterDuff.Mode.CL
2017-02-15 16:59:45
6087
1
原创 设计模式——原型模式
今天我们来说说创建型模式的最后一种模式原型模式,我们先来说一下大家都熟悉的克隆羊多莉,它是一只通过现代工程创造出来的雌性绵羊,也是世界之初第一个成功克隆的人工动物。克隆是英文“clone”或“cloning”的音译,通常是利用生物技术由无性生殖产生与原个体有完全相同基因组织后代的过程。克隆我们了解了,那么原型是什么呢?什么事原型模式呢?其实原型跟我们的克隆是一样的。 原型模式的使用:通过new产生
2017-02-14 11:11:43
739
原创 设计模式——建造者模式
建造者模式是创建型模式之一,分离了对象子组件的单独构造(也就是我们常见到的以builder结尾的,如:我们所熟悉的关于SAX解析的SAXBuilder)和装配(也就是我们经常见到的以director结尾的,如:DefaulRequestDirector)。由于实现了构建和装配的解耦,不同的构建器,相同的装配,也能创建出不同的对象。即使是相同的构建器,如果装配的顺序不同,也可以创建出不同的对象。也就是
2017-01-22 13:05:54
790
原创 设计模式——工厂模式
工厂模式实现了创建者和调用者的分离。工厂模式的作用就是在实例化对象的时候代替了以往的new操作,将实现类、创建对象进行统一管理。详细分为:简单工厂模式、工厂方法模式、抽象工厂模式。使用工厂模式时最好要遵循面向对象设计的基本原则,即开闭原则、依赖倒转原则和迪米特法则。开闭原则:作为一个软件的应用程序的可扩展性,应当对扩展开放,对修改关闭。依赖倒转原则:要求要针对接口编程不要针对实现编程。迪米特法则:只
2017-01-17 17:27:00
1114
原创 设计模式——单例模式
作为开发者的我们,想必设计模式对大家来说并不陌生,设计模式共有23种,分别是:工厂方法(FactoryMethod)、抽象工厂(AbstractFactory) 、建造者模式(Builder)、单态模式(Singleton)、 原型模式(Prototype)、 适配器模式(Adapter)、桥接模式(Bridge) 、组合模式(Composite) 、装饰模式(Decorator)、外观模式(Fac
2017-01-17 13:27:48
1385
原创 Android 自动填写验证码
获取验证码几乎是每个应用所必备的,很多应用在用户注册的时候设置一个验证码的功能,根据手机号获取验证码的作用就是防止恶意注册。先来看一下效果图 上面的效果就是读取短信的信息,然后根据信息内容将验证码截取出来,赋值到输入框。具体的实现过程如下: 首先就是要读取短信,获取短信的内容,如何获取短信的内容呢,android将所有的短信信息都存入了mmssms.db中,如果要访问短信数据库里面的内容就需
2016-12-28 17:00:27
6169
原创 Android 推送-个推
最近闲来无事就把个推研究了一下,发现个推的SDK版本已经更新到2.9.5.0了,而且跟以前的版本相比感觉变化实在是太大了。 以前的版本在配置清单里面的配置为<!-- 配置第三方Receiver--> <receiver android:name="cn.com.zhaoshuikan.bdhospital.PushReceiver"
2016-12-22 18:56:16
10002
1
原创 Android FlowLayout实现热门标签功能
FlowLayout实现热门标签的功能想必大家都见过,有的为搜索的历史记录,有的则是一些推荐等等。总之热门标签在很多应用里面都有使用,先看一下实现的效果图 下面的一张是截取的淘宝搜索的效果 那么我们如何实现上面的效果呢?我实现的效果是充满屏宽状态的,而淘宝的则是没有充满屏宽的。如何实现充满屏宽其实也不是很难。 下面我们就来探讨一下如何实现: 首页我们需要自定义一个控件也就是我们说的F
2016-12-13 16:22:05
3546
1
原创 Android 性能优化
本篇博客主要讲述一下关于性能优化的方法。在开发的过程中,我们有些人只是最求功能的实现,而不去理会性能方面的问题。Android的内存和CPU的性能都是有一定限制的,过多的使用内存会导致我们的内存溢出,也就是我们常见的OOM(Out Of Memory )现象。如果过多的消耗CPU会导致我们的手机产生卡顿的现象。这些问题的产生都是由于我们在开发的过程中,一味地只求功能的实现而忽略了性能导致的。那么我们
2016-12-09 17:11:14
739
原创 Android 标题背景渐变
有些应用上面的标题的背景色默认的是全透明的,也就是以背景图片来作为背景色。然后随着ListView的滑动标题的背景色会有全透明慢慢的变为和背景图一样的颜色。以图为证: 上面的效果图想必大家并不陌生,我们手机上面的一些应用就有。那么这个效果是怎么实现的呢?其实这个效果就是一个自定义的ScrollView,其中要重写里面的onScrollChanged这个方法, protected void on
2016-12-08 15:29:40
1883
原创 Android 属性动画
关于Android的动画我们都有所接触,Android的动画有三种,分别是View动画、帧动画,还有就是本篇要说的属性动画。View动画我们很常见就是平移动画(TranslateAnimation)、缩放(ScaleAnimation)、旋转(RotateAnimation)、透明动画(AlphaAnimation),帧动画就是通过顺序依次播放的动画。这些动画都是使用在View上面的,也就是我们在已
2016-12-02 16:17:23
1056
1
原创 Android 侧栏A-Z的快速滑动搜索(二)
在前面的文章中已经介绍了侧栏字母#A-Z以及搜索框的实现。 这次主要是来实现以下侧滑的功能,侧滑也是很多应用里面都有的,我们所熟悉的QQ里面的消息条目就是使用的侧滑功能。下面我们就来说说侧滑功能的实现吧。 侧滑删除当然也是离不了自定义控件的而且还要有滑动的动画出现,所以我们会使用到ViewDragHelper,使用是需要以下几个步骤 1.使用静态方法来构ViewDragHelper,需要传入
2016-11-26 18:09:55
1433
原创 Android 侧栏A-Z的快速滑动搜索(一)
Android侧栏A-Z的快速滑动搜索想必大家并不陌生,很多应用里面都有这样的功能出现。最常见的如电话联系人列表、好友列表、城市列表等等。快速搜索就是方便我们快速定位到我们要找的信息。比如我们想找姓氏为刘的,那么我们只需要点击一下L就能搜索到好友里面的姓氏拼音首字母以L开头的,当然姓氏刘也就搜出来的,有可能以L开头的姓氏比较多,比如李、郎、鲁、柳、雷、刘、林、蓝、吕等,而我们想找到刘这个姓我们可以让
2016-11-25 22:07:12
3427
原创 Android ImageView移动和缩放
要实现ImageView的缩放就要使用到我们大学里面学习的线代里面的矩阵(Matrix),我们看一下源码就可以知道 public static final int MSCALE_X = 0; //!< use with getValues/setValues public static final int MSKEW_X = 1; //!< use with getValue
2016-11-17 18:25:54
2509
原创 Android ListView Item含有RadioButton、CheckBox、RatingBar、EditText
ListView在项目里面会经常遇到,但是有时候在使用的过程中会遇到一些让我们意想不到的问题,ListView的复用问题在前面的博客中已经介绍过了点击浏览ListView的复用问题。这边博客主要是关于什么的呢?先来看看效果图 这一篇可以说是关于ListView的复用的经常用到的事例。单选,多选,星星的滑动和修改保存EditText的内容 单选的不单单是复用的问题,之所以可以实现单选就是我们大
2016-11-12 21:05:00
2347
原创 Android Canvas、Paint、Path、drawBitmap
我们平常的画图都是通过Paint画笔在Canvas画布上进行绘制的,我们在画图之前首先就是要把我们的画笔设置好。就跟我们平时画图一样,先要选好画笔的粗细、颜色以及透明度,然后我们才开始作画,最后将Canvas画布呈现给用户。 我们来认识一些具体的方法: 画图之前我们是要准备好Pint(画笔)的,那么我们就来整一个画笔对象。 先了解一下画笔的一些样式 Paint.Style.FIL
2016-11-12 19:47:33
5205
原创 Android 上下滚动的广告条
有些应用里面会有一些上下滚动文字的广告,尤其是关于商城里面的容易出现,具体的效果相比大家也见过,先看看效果吧 这是怎么实现的呢,有人说是用TextView实现,有的说这是跑马灯效果。其实说TextView实现这种效果的同学只是说对了一半,这个效果的实现是离不开TextView的,因为文字的显示的大小和颜色都可以通过TextView来实现。但是只有TextView是万万不能实现的。这里还需要用到
2016-11-09 16:35:45
7365
原创 Android 解决ListView的复用问题
ListView是大家在项目的开发过程中不可避免要使用到的,使用ListView的同时我们还要使用到适配器,如果ListView只有一两条数据的话我们可能不会考虑到用ListView的复用机制,因为你用不用对象的创建和空间的开辟都是那么多。这样的话ListView复用出现的问题也就不存在了。然而很多应用展示的条目并不是那一两条数据,而是很多会多余一屏的显示,不然也就不会有加载更多的出现了。如果我们不
2016-11-09 11:52:30
12305
3
原创 Android 无限循环的广告轮播图
上一篇文章讲了自定义控件的是关于轮播图的,这张我们就来说一下轮播图的实现。轮播图的实现用到的控件是ViewPager,关于ViewPager的懒加载机制我在前面的文章中已经讲过,大家如果有兴趣的话可以去看看。关于无限循环的广告轮播图真的是可以无限循环吗?答案是不可能的。因为我们都清楚我们的无限轮播不过是将展示的条目数设置的很大,给我们的感觉就是一直在循环展示。如何设置呢?下面我就来一一为大家解析一下
2016-11-08 14:46:59
1858
原创 Android自定义控件
我们在开发的过程中,有时会遇到一些Android系统自带的控件解决不了我们的需求,比如说我们在开发项目时显示的图片轮播,当我们展示的时候不希望图片变形,还要保证图片能够完整的显示出来,我们如何做呢?如果只是一个简单的ImageView控件恐怕很难实现吧!有人会说ImageView的ScaleType属性就能够解决图片填充不满的问题,但是那样的话图片很容易失真,达不到产品原先的需求。首先我们来认识一下
2016-10-28 14:16:00
4565
原创 Android 仿iOS带有星期几的日期时间选择器
最近看到一个需求,就是日期时间选择器上面需要带有星期几来供用户滑动选择,我上网搜了一些发现很多demo都跟我以前写过的一篇日期时间选择器差不多,(点击查看我以前写过的日期时间选择器)找不到带有星期几的日期时间选择器,于是自己就研究了一下。实现效果如下 发现其实这个功能实现起来并没有想象的那么复杂。首先一天多少天是根据闰年和平年之分的也就是二月,闰年和平年的判断方式相比大家也都知道就是if ((
2016-10-14 10:05:56
6992
3
原创 Android AppBarLayout+TabLayout+RecyclerView+ViewPager+Fragment
最近有人让我帮忙实现一个如下图所示的效果 需求:标题栏本来是在banner的下方,当滑动下面的RecyclerView的时候标题栏会随着向上移动,但是当标题栏移动到顶部时是要悬浮在顶部,下面无论如何上滑标题拦都不再移动,当向下滑动时知直到出现RecyclerView的第一条时标题栏才会随着向下移动。 AppBarLayout 是继承LinerLayout实现的一个ViewGroup容器组件,
2016-10-08 18:06:44
13965
原创 Android动画效果
由于公司要求项目里面要有一些动画,于是自己就研究了一些。先上图看看效果 首先第一个动画 第一个动画其实就是我们通常使用的AlphaAnimation,ScaleAnimation进行的透明度的变化和放大缩小的动画。点的闪动就是我们使用的放大缩小的动画代码为 ScaleAnimation sa = new ScaleAnimation(1.0f, 0.9f, 1.0f, 0.9f,
2016-09-29 17:32:18
711
原创 个人笔记
写这片博客的目的就是为了记住一些自己曾经遇到过的一些问题。问题1Error:Execution failed for task ‘:app:dexDebug’. Process ‘command ‘C:\Program Files\Java\jdk1.8.0_60\bin\java.exe” finished with non-zero exit value 2 在app...
2016-09-22 10:00:50
1781
原创 Android 日期时间选择器
日期选择器是很多应用所具备的,比如设置一些任务的开始和结束时间。为了方便用户的同时也为了界面的好看,很多都是采用日期选择器,我在网上看了一下。很多的日期选择器个人感觉不是很好看,但是修改起来也有点麻烦,于是自己就写了一个demo。至于界面效果个人感觉也是很low,毕竟鄙人不是搞UI的,所以也就凑合着看吧。这些都不重要,因为这些是可以修改的。如果想实现具有年月日的请看下面的注意里面的内容,下图是实现的
2016-09-07 17:47:46
29566
20
原创 Android 高德地图的开发
地图对我们来说并不陌生,我相信每个用户的手机上面都会带有地图这个软件的,地图也是我们日常生活中的一部分。当我们到一个陌生的地方的时候,地图的作用就尤其明显。今天我们要说的也是地图,最近我在研究地图的一些功能,由于公司的项目里面使用的第三方为高德的,本人也就研究了一下高德的,研究了几天,虽然功能没有想象中的那么复杂,但是也走了不少弯路。在这里就给大家先介绍一些简单的功能。也是大家比较喜欢离不开的一些功
2016-08-15 14:01:43
8423
4
Android 解决ListView的复用问题 demo
2016-11-09
仿iOS带有星期几的日期时间选择器
2016-10-14
Android AppBarLayout+TabLayout+RecyclerView+ViewPager+Fragment
2016-10-08
SelectTime
2016-09-07
水平柱状图
2016-08-18
ListView嵌套GridView以及ListVIew嵌套ListVIew
2016-08-02
AnimationDemo
2016-07-27
Android 上传头像自定义(剪切、平移,缩放)
2016-04-01
Android 仿微信上传头像自定义(剪切、平移,缩放)
2016-03-23
Android6.0动态权限申请
2018-12-11
Android 自定义可以滑动和点击的RangeBar
2017-05-17
GreenDao实现CRUD和升级
2017-03-14
AttributeAnimation
2017-03-14
Android水波纹
2017-02-15
Android 自动填写验证码
2016-12-28
FlowLayout
2016-12-13
Android 标题背景渐变
2016-12-08
Android 侧边A-Z的快速滑动搜索
2016-11-26
ImageView的移动和缩放
2016-11-17
ListView Item里面含有RadioButton、CheckBox、星星、EditText控件
2016-11-12
Android 实现TextView上下滚动效果
2008-06-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人