自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 资源 (1)
  • 收藏
  • 关注

原创 【OkHttp3源代码分析】(二)Request的enqueue

前言如果没有阅读本系列文章的第一篇,请先阅读:【OkHttp3源代码分析】(一)Request的execute因为这两者之间是有关联的!enqueue执行流程源代码分析先来看看源代码: @Override public void enqueue(Callback responseCallback) { enqueue(responseCallback, false);//继续调用下面

2016-04-03 22:06:31 2367

原创 【OkHttp3源代码分析】(一)Request的execute

简单使用OkHttp3阅读本文需要对OkHttp3的使用有一定了解。首先我们先看看如何简单进行一个get请求的Request。Request qqRequest = new Request.Builder() .url("http://www.qq.com") .build();Call call =

2016-04-03 21:33:00 4509

原创 【项目重构】Session过期导致用户掉线

问题介绍最近工作室非常忙,忙着招新,也忙着其他事情。(学习OkHttp、RxJava)很多东西都没有积累下来。 所以打算还是要坚持写文章。实际上OkHttp和RxJava最近理解又多了不少。 但是迫于时间不够,没有时间积累下来。最近也要开始重构我们工作室的项目,里面的代码有点感人,所以很难下手。 所以还是需要谨慎开始,但最近在思考的是一个问题:有一些接口是要登录之后才能获取数据的,不然会被返回500

2016-03-30 00:04:34 1691

原创 【RxJava Demo分析】(四)RxBus

RxBus也许大家都听过或者项目中都是使用Otto或者EventBus这两个事件总线库,这两者都是基于订阅者实现的。大家也知道RxJava也是基于订阅者实现的。 那么是否RxJava也可以实现事件总线呢? 是的! RxJava的出现,给我们带了了一个无比轻量的事件总线库,而且实现的方式非常简单,完全能够满足我们的需求!正是这个特性! 让我学习RxJava热情又加深了~~ 照旧,我们来看看RxBus这

2016-03-13 20:51:30 935

原创 【RxJava Demo分析】(三)buffer操作符、RxBinding库

BufferDemoFragment我们一下这个原作者的注释: This is a demonstration of the buffer Observable. The buffer observable allows taps to be collected only within a time span. So taps outside the 2s limit impos

2016-03-05 17:11:50 1837

原创 【RxJava Demo分析】(二)Schedulers线程调度器

ConcurrencyWithSchedulersDemoFragment用Schedulers(调度器)实现多任务(并发,Concurrency)的例子废话不多说我们看一下有关于RxJava的代码: private Subscription _subscription; @OnClick(R.id.btn_start_operation) // public void star

2016-03-05 13:37:48 495

原创 【RxJava Demo分析】(一)just、error、defer和CompositeSubscription

前言RxJava可能是目前最难以掌握的库之一,面对大量的书籍和理论讲解,我选择结合项目来进行理解和记录。本系列教程是基于Github开源项目RxJava-Android-Samples 进行分析。 里面有RxJava在Android开发中较为日常的使用操作,所以具有非常好的学习意义啊~ 但可能因为是英文,可能大家多少有排斥心理,所以我就写下这一系列教程,希望能帮到有意愿学习的童鞋~ 注意:因为本人

2016-03-05 01:29:29 1815

转载 【转】RxJava教程大集合

源地址:https://github.com/THEONE10211024/RxJavaSamplesRxJavaSamples收集了RxJava常见的使用场景,例子简洁、经典、易懂…samples中的例子我已经在我的博客里介绍了,想进一步了解的同学可以看这里 (非)著名的库RxJava 没什么好说的,众多Rx系列的发源地。 RxAndroid JakeWharton大神主导,

2016-03-04 00:35:02 3447

原创 【IntentService】原理解析

为何要用IntentServiceIntentService主要是用来处理耗时的任务。 那么可能有的人会说,为何我不使用开一个线程或者其他来方式来实现呢?因为IntentService继承自Service,属于四大组件之一。而根据Android系统的特点,系统倾向于释放没有活跃的四大组件的App。 所以当我们进行一些比较重要的耗时任务时,这个是我们一个很好的选择。 比如下载一个更新包,升级我们的Ap

2016-02-26 23:12:35 2173

原创 【Android消息机制】简要分析(一)

主要组成概述:Hanlder、MessageQueue以及Looper1.Handler:线程切换2.MessageQueue:用来存储信息 内部实现是单链表而不是队列。3.Looper:无限循环的方式去查找是否有消息 备注:Looper中一个ThreadLocal的概念 作用:是来存储每一个线程中数据。 用途:Hanlder创建的时候会采用当前线程的Looper来构造消息循环系统,

2016-02-25 23:47:31 420

原创 【RxJava】Observable基本方法

1.前言随着RxJava越来越火,相信在2016年必定会大方异彩。 虽然前前后后看了不少RxJava的文章,但都没有积累下来,又没有在实际项目中使用过。 因此特意写下这篇文章记录学习过程。2.简介RxJava一般我们进行耗时任务,如网络、数据库查询、复杂计算等等,我们都回开启一个线程,然后通过接口回调,获取我们的结果。 但随着我们业务逻辑的越来越复杂,我们就会陷入一个回调地狱,回调里面还有回调,在日

2016-02-02 22:06:20 9309 5

原创 【Volley核心类分析】CacheDispatcher、NetworkDispatcher以及ResponseDelivery(二)

1.前言上一篇文章按照自己的思路来写,对于他人来说可以能不是那么容易读懂,想要改一下却不知道如何下手。我们先回顾一下上一篇我们的分析,我们分析到了RequestQueue的start方法,这里启动了缓存的调度线程以及网络的调度线程。 我们没有进行具体的分析,那么这节课我们来分析一下。2.CacheDispatcher首先看看构造方法:public CacheDispatcher(

2016-02-01 17:18:58 424

原创 【Volley核心类分析】RequestQueue(一)

1.前言Volley , 当我从第一次接触安卓开始就已经听过这个库的存在。 那时候我还不懂得什么的封装,每次都憨憨地从创建HttpURLConnection开始,然后open,然后getInputstream,然后再BufferedReader一步一步的将网页返回的数据变成一个String,再Gson解析成我要的数据来展示。一直怀揣着对Volley的神秘感。对他的认识也就是道听途说来的,所以感觉还是

2016-02-01 16:09:19 536

原创 【选择图片Jar】结束语以及简单的使用教程(十一)

1.前言OK 经过前面这么多篇文章的讲解,相信大家已经学到了不少的东西!那么接下来分享几个封装好的工具!2.PhotoScanner图片扫描public class PhotoScanner { private static PhotoScanner mScanner; private Context mContext; /** * 图片的父亲路径集合 *

2016-01-31 17:32:51 441

原创 【选择图片Jar】全屏DialogFragment实现图片详情预览(十)

1.前言上一篇文章我们在最后抛出了一个问题。到底我们要如何实现图片的详情页的预览。 如图: 相信大家看了标题已经知道了,我们是用DiaFragment实现我们这个功能的!嘿嘿,可能这个时候会有点惊讶,原来DialogFragment还有这样的效果?奥秘在哪里呢?等下我们就会来揭晓。再说两句~~Dialog和Fragment一直是我们开发中又爱又恨的两个东西,Dialog的Api繁多复杂,难以使用!

2016-01-30 19:29:21 815

原创 【选择图片Jar】预览图片模块之M与C的实现(九)

1.前言经过上一篇文章的铺垫,如果已经完全搞懂了,那么我们就可以开始进行我们本节的内容了!本篇文章将带来,完整的Model的代码,以及对绝大部分的Controller的代码。 2.ChosenPhotoAdapter的实现依旧,我们从构造方法开始看: /** * 上下文 */ private Context mContext; /** * 图片路径

2016-01-30 14:44:57 408

原创 【选择图片Jar】完成选择图片后:预览图片的实现(八)

1.开篇在多选模式下,我们选择玩完图片之后,一般都会提供一个图片预览的功能就像微信这样: 我们来看看我们实现的效果: 细节上有些区别,但功能我们总归是实现了吧!!2.开始实现前的准备我们先来看看,我们展示已选择图片的这个GridView是不是和我们待选择图片的是一样的呢?答案是肯定的! 所以很明显我们可以继续复用这个控件,也就是V是一样的,但不同的是什么呢?没错是M和C是不一样的,就

2016-01-30 13:39:55 361

原创 【选择图片Jar】感受”MVC”魅力-扩展选择数量(七)

1.前言上篇文章是说会带来本Jar的第一次扩展。本次扩展的是规定选择数量上限!需求分析,我们选择图片无外乎两种情况: 第一种:选择多张图片,作为附件上传; 第二种:选择一张图片,作为头像,然后再上传。因此衍生出我们扩展的需求: 1.多选模式 设置选择图片数量上限 2.单选模式 选择图片完成后 然后回调处理这个时候,MVC的魅力就来了。我们仅需要在C中改少量代码,即可完成我们的需求!接下来我们

2016-01-29 18:33:24 313

原创 【选择图片Jar】”MVC“核心Controller的代码分析(六)

1.开篇红红火火恍恍惚惚,终于来到重点啦!GalleryViewController的完整代码实现!各位小伙伴,上好厕所拿好板凳开始啦。这里信息量有点大!2.回顾我们从最开始的构造方法讲起!还记得我们Controller的职责吗? 负责M和V的逻辑通信! 也就是C要负责拿到原始数据->构建M->通过C->设置给V!我们回顾一下V如何和C建立联系的?通过bindController对吧!然后C如何设

2016-01-29 17:06:50 429

原创 【选择图片Jar】“MVC“来实现逻辑处理与View视图的分离(五)

1.”MVC”是一个什么鬼?全称是Controller和View加上一个数据源Model(Data)的简称。本人倾向将Adapter作为M,虽然他也涉及了View,但我觉得实际上Adapter职责是将简单的List数据按照View的模型,组装成方便使用的数据源。所以我将Adapter作为M,有兴趣的可以查阅一下其他资料~。我们都知道目前Android开发逐渐成熟,出现了很多原来没有的App架构模式,

2016-01-29 16:17:50 438

原创 【选择图片Jar】拨云见日-GalleryAdapter完整代码(四)

1.开篇经过前面(二)(三)两篇文章的基础,现在终于迎来激动人心的时刻啦!!拨云见日-GalleryAdapter的完整代码!2.构造方法首先我们看看他的构造方法和成员变量public class GalleryAdapter extends BaseAdapter { // 路径集合 private List<String> mPaths; // 上下文 priva

2016-01-29 15:34:48 723

原创 【选择图片Jar】Adapter的item布局的实现(三)

1.回到原点还记得我在第一篇文章中提及要用代码来写布局,来摆脱jar不能打包资源文件的困扰。 今天就是要带来如何用代码写布局文件。 2.布局分析首先我们看看我们要实现的布局是什么样子的。截取了一个item 我们可以看到,实际上是两个ImageView组成,我相信大家用布局来写,不超过一分钟就写完了。但是用代码实现可能就要下一番功夫了~3.布局实现首先编写一个类 继承自RelativeLayout

2016-01-29 14:56:23 644

原创 【选择图片Jar】Adapter的实现之SparseBooleanArray图片状态管理器(二)

1.选择图片遇到的最难解决的问题是?本来我想着是直接开始讲解Adapter中的代码,但是考虑到我现在也只是一个大二的学生,接触安卓也不过将近一年。在过去的一年里也遇到了不少的困难,也看了不少的博客和文章,才解决了不少的问题。所以我也想写给像我当初那样的新手看的文章,所以我决定从最原始的开始讲解起来。 回到题目这个问题,我们会遇到最难解决的问题是什么?可能有的朋友已经知道了:当我们重新来回滚动的时候

2016-01-29 14:08:47 614

原创 【选择图片Jar】开篇预警(一)

1.前言Android App中选择图片来上传图片和选择图片作为头像可以说是必不可少了的,但是经常的是需要不断地复制原本的代码到新的项目中去,这样很麻烦。于是乎我就想有没有一个办法能够消除这种情况。2.方法探索打包成jar包创建依赖库 library一开始我是先尝试jar包,后来发现对应的资源文件layout、drawable等等都是不能一起打包进去的,要是这样使用jar包,项目中会报异常。所

2016-01-29 13:25:15 390

原创 ContentResolver获取图片与获取视频

1.ContentResolver是获取其他应用程序共享自身数据库某些字段的的对象。 这些共享的数据,由被获取的数据的应用程序通过ContentProvider主动对外暴露出来的。 2.获取ContentResolver对象 通过上下文然后getContentResolver()就可以获得对象了。 3.关于用ContentResolver.query()方法的参数。第一个是目标的url其实就是程

2015-07-19 09:59:17 4618

原创 Bitmap与BitmapFactory.Options

1.简介 当我们加载多张图片到内存的时候,因为图片过于大,会消耗大量的内存,这样很容易导致OOM,所以当我们加载图片的时候,我们不得不压缩其大小。因此我们需要用到BitmapFactory.Options这个类2.使用 第一步都是先获取Options对象: Options tOptions = new BitmapFactory.Options();第二步分为两种方案:方案一:直接通过Opti

2015-07-14 09:40:15 384

原创 下拉刷新和上拉加载的ListView-MutilListView

public class LoadListView extends ListView implements OnScrollListener { private int firstItem;// 当前可以见第一个Item的位置 private int lastItem;// 当前可以见最后一个Item的位置 private int totalItemCount;// list

2015-07-02 16:14:49 364

原创 BaseAdapter-最万能的适配器

1.四个方法1. getCount(): 这个是数据源的数据数量。2. getItem():获取数据集中与指定索引对应的数据项3. getItemId():获取点击下去的索引值4. getView():返回Item布局2.配置与优化:1. 对convertView优化:先对其进行判断是否为null,若为null, 则用LayoutInflater进行布局初始化。2. 用

2015-06-22 23:00:32 489

日程管理Demo

日程管理Demo

2015-08-20

空空如也

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

TA关注的人

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