自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

被代码淹没的小伙子的博客

一个天天做着大神的梦的Android开发者 【Github】:https://github.com/DrownCoder 【简书】:https://www.jianshu.com/u/9dbc9b308ddb

  • 博客(62)
  • 资源 (2)
  • 问答 (3)
  • 收藏
  • 关注

原创 ShapeBuilder-你还在每次写一个Shape文件吗?

不知道大家有没有过这样的烦恼,打开Drawable文件夹下到处都是各式各样的shape定义,其中不乏有一模一样的样式,但只是名字不同,或者仅仅只是radius,color不同,但每次一有边框,圆角,点击效果等都需要定义一个新的shape,今天这个页面圆角要2dp,明天一样的又要4dp,或是颜色的变化都需要我们重新写一个shape.xml,至少我每次写的时候都有点受不了,为了避免每次这样做重复的定义...

2018-03-17 18:34:06 1217

原创 okhttp源码分析(一)——基本流程(超详细)

1.okhttp源码分析(一)——基本流程(超详细) 2.okhttp源码分析(二)——RetryAndFollowUpInterceptor过滤器 3.okhttp源码分析(三)——CacheInterceptor过滤器 4.okhttp源码分析(四)——ConnectInterceptor过滤器 5.okhttp源码分析(五)——CallServerInterce...

2017-09-28 20:36:55 1051

原创 Python自动生成10000个java类使用APT注解后引发的问题

前言前面写了一篇关于自己开发的一个基于APT注解的用于RecyclerView复杂楼层的开源框架,框架的原理比较简单,通过注解,在编译期会生成一个ComponentRule.java的文件,然后建立一个映射关系。使用方式简单介绍一下:1.绑定布局文件@ComponentType( value = ComponentId.SIMPLE, layout = R.l...

2018-11-24 18:37:56 278

原创 EMvp-基于AOP的一种RecyclerView多楼层开发模式,支持组件化,全局楼层打通,MVP等高拓展性功能

前言RecyclerView作为Google替代ListView的一个组件,其强大的拓展性和性能,现在已经成为无数App核心页面的主体框架。RecyclerView的开发模式一般来说都是多Type类型的ViewHolder——后面就称为楼层(感觉很形象)。但是使用多了,许多问题就暴露出来了,经常考虑有这么几个问题:如何更便捷的使用Adapter和ViewHolder的开发模式?...

2018-11-14 21:39:51 1445 2

原创 RichEditor——一款基于RecyclerView实现的富文本编辑器实现方案(支持图文、转义生成MarkDown、粗体、斜体、下划线、删除线、超链接、标题等)

前言对于富文本编辑器的实现,首先我们肯定会想到实现的编辑器需要支持的几个必要特性: 1.涉及大量文字,图片,文字样式的展示与编辑。 2.涉及极其复杂的用户交互。目前Github上我所了解的富文本编辑器基本上实现方式基于两种: * 1.基于WebView拓展的富文本编辑器。 * 2.基于EditText重写的富文本编辑器。对于这两种方案,这里提出一些我个人的看法。...

2018-05-29 21:18:32 4670 4

原创 EventBus源码解析(二)—发布事件和注销流程

1.EventBus源码解析(一)—订阅过程 2.EventBus源码解析(二)—发布事件和注销流程前言上一篇博客已经比较详细的讲解了EventBus的注册过程,有了上一篇博客的基础,其实关于EventBus的源码中的其他流程就非常好理解了,尤其是我认为EventBus中最为重要的两个Map,理解了两张图其实就理解了EventBus的原理。源码分析1.发布...

2018-05-29 21:17:33 300

原创 EventBus源码解析(一)—订阅过程

1.EventBus源码解析(一)—订阅过程 2.EventBus源码解析(二)—发布事件和注销流程前言最近发现EventBus用起来是真的方便,本来对于EventBus我对于这个框架的源码的阅读的优先级是比较低的,因为这个框架不像OkHttp,Glide那样层层嵌套,步步深入,基本上有一定基础的人对于EventBus的原理都会有一定的理解——反射。但是最近突然发现仅仅是...

2018-05-29 21:16:49 278

原创 【干货】基于iconfont拓展的EasyTextView(高度自定义,丰富Api,支持左右设置Text,设置Shape,设置span等)

基于iconfont拓展的TextView(支持左右设置Text,设置Shape,设置span等) 项目介绍还在苦于iconfont左右两边还需要设置文字只能加两个TextView?还在苦于需要设置各种大同小异的边框而new Shape文件吗?还在苦于设置点击效果而多种样式吗?还在苦于总用LinearLayout包一层?(代码洁癖患者~)。 一个基于iconfon...

2018-05-02 21:30:24 220

原创 【进阶】RecyclerView源码解析(四)——RecyclerView进阶优化使用

1.【进阶】RecyclerView源码解析(一)——绘制流程 2.【进阶】RecyclerView源码解析(二)——缓存机制 3.【进阶】RecyclerView源码解析(三)——深度解析缓存机制 4.【进阶】RecyclerView源码解析(四)——RecyclerView进阶优化使用 上一篇博客比较深度的对RecyclerView的缓存机制进行了分析,分别对...

2018-05-02 21:29:33 501

原创 【进阶】RecyclerView源码解析(三)——深度解析缓存机制

1.【进阶】RecyclerView源码解析(一)——绘制流程 2.【进阶】RecyclerView源码解析(二)——缓存机制 3.【进阶】RecyclerView源码解析(三)——深度解析缓存机制上一篇博客从源码角度分析了RecyclerView读取缓存的步骤,让我们对于RecyclerView的缓存有了一个初步的理解,但对于RecyclerView的缓存的原理还是不能理...

2018-04-17 21:21:41 1143

原创 【进阶】RecyclerView源码解析(二)——缓存机制

1.【进阶】RecyclerView源码解析(一)——绘制流程 2.【进阶】RecyclerView源码解析(二)——缓存机制 3.【进阶】RecyclerView源码解析(三)——深度解析缓存机制引言 接着上一篇博客分析完RecyclerView的绘制流程,其实对RecyclerView已经有了一个大体的了解,尤其是RecyclerView和LayoutManag...

2018-04-02 21:06:30 2644

原创 【进阶】RecyclerView源码解析(一)——绘制流程

1.【进阶】RecyclerView源码解析(一)——绘制流程 2.【进阶】RecyclerView源码解析(二)——缓存机制 3.【进阶】RecyclerView源码解析(三)——深度解析缓存机制引言 自从Google出了RecyclerView后,基本上列表的场景已经完全替代了原来的ListView和GridView,现在不仅仅是列表,多样式(俗称盖楼),复杂页...

2018-03-17 18:35:18 6093 2

原创 Android增强现实(三)-3D模型展示器

1.Android增强现实(一)-AR的三种方式(展示篇) 2.Android增强现实(二)-支持拖拽控制进度和伸缩的VrGifView 3.Android增强现实(三)-3D模型展示器前言前段时间研究了一下增强现实在Android端的实现,目前大体分为两种,全景立体图(GIF和全景图)和3D模型图。这篇博客主要讲一下关于3D模型的展示方式吧。使用方式...

2018-03-17 18:32:38 6604 2

原创 Android增强现实(二)-支持拖拽控制进度和伸缩的VrGifView

1.Android增强现实(一)-AR的三种方式(展示篇) 2.Android增强现实(二)-支持拖拽控制进度和伸缩的VrGifView 3.Android增强现实(三)-3D模型展示器前言前段时间研究了一下增强现实在Android端的实现,目前大体分为两种,全景立体图(GIF和全景图)和3D模型图。这篇博客主要讲一下关于GIF相关的实现方式。效果...

2018-03-17 18:31:46 689

原创 Android增强现实(一)-AR的三种方式(展示篇)

有一段时间没写博客了,事情比较多,博客进度有点跟不上了 1.Android增强现实(一)-AR的三种方式(展示篇) 2.Android增强现实(二)-支持拖拽控制进度和伸缩的VrGifView 3.Android增强现实(三)-3D模型展示器这段时间研究了一段时间Android端增强现实的方式,总体分为两个大类:全景图和3D模型。 于是基于这两种形式,以三种方式...

2018-03-17 18:29:23 21416 5

原创 okhttp源码分析(五)-CallServerInterceptor过滤器

1.okhttp源码分析(一)——基本流程(超详细) 2.okhttp源码分析(二)——RetryAndFollowUpInterceptor过滤器 3.okhttp源码分析(三)——CacheInterceptor过滤器 4.okhttp源码分析(四)——ConnectInterceptor过滤器 5.okhttp源码分析(五)——CallServerInterce...

2018-03-17 18:28:13 417

原创 okhttp源码分析(四)-ConnectInterceptor过滤器

1.okhttp源码分析(一)——基本流程(超详细) 2.okhttp源码分析(二)——RetryAndFollowUpInterceptor过滤器 3.okhttp源码分析(三)——CacheInterceptor过滤器 4.okhttp源码分析(四)——ConnectInterceptor过滤器 5.okhttp源码分析(五)——CallServerInterce...

2018-03-17 18:27:18 419

原创 okhttp源码分析(三)-CacheInterceptor过滤器

1.okhttp源码分析(一)——基本流程(超详细) 2.okhttp源码分析(二)——RetryAndFollowUpInterceptor过滤器 3.okhttp源码分析(三)——CacheInterceptor过滤器 4.okhttp源码分析(四)——ConnectInterceptor过滤器 5.okhttp源码分析(五)——CallServerInterce...

2018-03-17 18:24:46 465

原创 okhttp源码分析(二)-RetryAndFollowUpInterceptor过滤器

1.okhttp源码分析(一)——基本流程(超详细) 2.okhttp源码分析(二)——RetryAndFollowUpInterceptor过滤器 3.okhttp源码分析(三)——CacheInterceptor过滤器 4.okhttp源码分析(四)——ConnectInterceptor过滤器 5.okhttp源码分析(五)——CallServerInterce...

2017-10-09 20:03:17 556

原创 XVolley-基于Volley的封装的工具类

XVolley-基于Volley的封装的工具类前面几篇博客分析了Volley的源码,加上最近在看《Head First设计模式》这本书(不得不说老外的书是真的不错,推荐),于是基于鸿洋大神的OkhttpUtil的源码,加上自己的理解,封装了这么一个工具类。一、功能1.GET 2.POST 3.post传json 4.post传文件(不支持大文件类型) 5.自定义拦截器 6.gson 7.

2017-09-18 20:08:21 571

原创 Volley源码分析(三)

Volley源码分析(三)上一篇分析完了RequestQueue的大部分方法,add执行完后,Volley就会执行线程操作了,在第一篇博客中提到,star方法执行时会创建1个缓存线程(CacheDispatcher)和4个网络线程(NetworkDispatcher),并开始这5个线程。这里我们就先看缓存线程。public class CacheDispatcher extends Thread {

2017-08-28 21:00:54 380

原创 Volley源码分析(二)

Volley源码分析(二)上一篇分析完了Volley.newRequestqueue()方法。方法最后执行到了requestqueue.start()方法 /** * Starts the dispatchers in this queue. */ public void start() { //停止当前所有线程 stop(); // M

2017-08-22 20:37:14 285

原创 Volley源码分析(一)

Volley源码分析(一)第一次一行一行读源码,记录下来,慢慢来1.Volley.class用过Volley的都知道使用Volley的第一步需要使用Volley.newRequestQueue方法创建一个RequestQueue。所以就从这开始吧。 public class Volley {/** Default on-disk cache directory. */private static

2017-08-16 20:49:08 291

原创 《HeadFrist 设计模式》读书笔记 —— 策略模式

《HeadFrist 设计模式》读书笔记 —— 策略模式出现情形:定义了一个父类鸭子,定义的有叫,游方法,子类有:活鸭子,玩具鸭子等,这时想在父类鸭子中加上飞这个操作,这时会出现情况,活鸭子可以实现叫,飞,游方法,但是玩具鸭子只能实现叫,游,并不能飞。思路进程:1.利用继承:直接在父类中加上fly()方法,这样需要在不同的子类中覆盖fly方法,活鸭子就可以飞,但是玩具鸭就不能飞。 缺点: 1)加

2017-08-16 19:55:50 269

原创 色彩天气APP-MVP初体验

色彩天气APP-MVP初体验一直理论上看mvc,mvp,mvvm,但是实际上总是用的mvc,没有真正意义上写过mvp的代码,所以实际动手写了一个用mvp实现的小项目。技术点介绍1.mvp模式 2.原生retroft2 3.百度sdk 4.自定义View 5.sqllite功能介绍1.根据ip,通过百度sdk定位城市 2.获得城市天气,支持天气预报 3.查询城市 4.本地备份已查询的城市

2017-08-15 20:19:00 481

原创 《Android开发艺术探索》读书笔记-第四章 View的工作原理

Android开发艺术探索-读书笔记第四章 View的工作原理4.1初识ViewRoot和DecorView1)ViewRoot对应ViewRootImpl类,View的绘制流程是从ViewRoot的performTraversals方法开始的,performTraversals会依次调用performMeasure、performLayout、performDraw方法,三个方法分别完成View的

2017-08-01 20:19:56 491

原创 《Android开发艺术探索》读书笔记-第三章 View的事件体系

Android开发艺术探索-读书笔记第三章 View的事件体系3.1 View的基础知识3.1.2 View的位置参数1)View的位置参数top,left,right,bottom都是View相对于父容器的位置坐标 2)x = left + translationX;y = top + translationY 3)View在平移的过程中top和left并不会发生改变,改变的是translat

2017-08-01 20:17:16 320

原创 《Android开发艺术探索》读书笔记-第二章 IPC机制(未啃透)

Android开发艺术探索-读书笔记第二章 IPC机制2.2 Android中的多进程模式2.2.1 开启多进程模式1)开启多进程方式:在AndroidMenifest.xml文件中为四大组件指定android:process属性 2)“:”和完整进程名的区别:“:”的含义是指要在当前的进程名前附加上当前的包名,而完整进程名就是以完整的名字为命名,不会附加信息;以“:”开头的进程属于当前应用的私有

2017-08-01 20:15:10 218

原创 自定义评分条-CustomAnimRatingBar(二)

自定义评分条-CustomAnimRatingBar(二)接着上一篇博客http://blog.csdn.net/sdfdzx/article/details/75447981,由于需求变动,需要星星在滑动的时候能够有动画效果,由于CustomRatingBar是基于自定义View,实现onDraw绘制而成,实现动画效果比较困难,所以只能考虑从用另一个方式实现这个组件,这篇博文就是用ViewGrou

2017-07-27 11:20:49 521

原创 自定义评分条(方式一)-CustomRatingBar

自定义评分条-CustomRatingBarAndroid原生的RatingBar是一个评分组件,但是局限性比较多,像星星大小不好调整,星星之间的间距不好调整,不可以小数制的评分等,为了应对需求,开发出一个可自定义性较强的评分组件。功能特性1.可设置星星大小 2.可设置星星之间的间距 3.可以设置星星图片(填充图片和未填充图片) 4.可以设置星星是否可触摸评分 5.可设置评分范围(整颗 |

2017-07-19 20:01:30 686

原创 自定义View----总结

自定义View—-总结这一段时间写了不少自定义View,总算对自定义View有了一个大体上的理解,根据自己的理解自定义View其实总体分为三类。 1.自绘组件 2.组合组件 3.继承组件网上的自定义View统称的方式就是那些固定的onMeasure,onDraw……,其实不仅仅如此,自定义View有很多可以利用的地方,通过我自己的体会,我感觉总体分为以上的三种比较合理,分别的实现方式也不同。1

2017-07-11 20:07:48 231

原创 AutoFitTextView-根据文本内容自动调整字体大小的TextView

AutoFitTextView-根据文本内容自动调整字体大小的TextView 上次完成的仿网易新闻标签选择器(可拖动)-TabMoveLayout有个问题,那就是因为标签的宽度是固定的,当标签文字过长的时候,就会显示不全,网易新闻的处理方法是缩小字体使得标签可以包容下文字。所以就对应将这种方式实现了出来。实现思路:因为宽度是固定的,而TextView的实现方式其实是通过Paint绘制的,所以我们

2017-04-25 18:47:49 3533

原创 allowTaskReparenting属性

allowTaskReparenting属性最近看到了TaskAffinity和allowTaskReparenting配个使用,就写了个Demo,测试了一下 情景: 应用1(tabflowlayout):MainActivityA 应用2(autofittextview):MainActivityB(Main入口),TestActivity结果>启动应用1>MainActivityA点击跳

2017-04-20 19:05:07 2426

原创 《Android开发艺术探索》读书笔记-第一章 Activity的生命周期和启动模式

Android开发艺术探索-读书笔记第一章 Activity的生命周期和启动模式1.1.1典型情况下的生命周期分析1)Activity的生命周期: onCreate->onRestart->onStart->onResume->onPause->onStop->onDestroy 2)onStart:这时Activity已经可见了,但是还没有出现在前台 3)onResume:这时Activit

2017-04-19 19:24:28 699

原创 仿网易新闻标签选择器(可拖动)-TabMoveLayout

仿网易新闻标签栏-TabMoveLayout网易新闻标签栏的实现效果我一直想实现试试,最近发现支付宝的应用栏也变成了这样,最近花了点时间终于实现,初步实现效果如下,后面有时间还会继续完善 实现功能1.长按抖动 2.标签可随意拖动,其他标签随之变换位置 3.拖动变换子View顺序后续想实现1.仿照ListView+Adapter,利用adapter模式分离,实现自定义View的拖拽(现在只能为T

2017-04-18 18:12:24 4165 1

原创 编程习惯(慢慢总结)

1.getview里面不要new对象2.自定义view的构造函数3.驼峰4.事件不要和activity绑定5.声明时按类别功能6.按照xml顺序findviewbyid7.xml中少嵌套布局,多用relativelayout少用LinearLayout8.BaseActivity{ initView() initDate() initEvent() }9.不要用int

2017-04-18 09:32:38 462

原创 竖向Viewpager(3D翻动效果画廊)

竖向Viewpager(3D翻动效果画廊)效果:1.竖向的Viewpager 2.3D翻动效果 3.Glide加载图片实现思路:1.Viewpager的竖向滑动:可以参照stackoverflow中的一篇帖子,这里面有很多种方式。 这里说下我的实现方式:交换触摸位置的x,y方向,利用PageTransformer的transformPage()方法,在移动过程中通过translation动态改

2017-04-13 18:46:51 1883

原创 Animation导致removeView无效(源码分析)

Animation导致removeView无效(源码分析)继续入自定义View的坑,最近实现一个效果的时候,需要动态添加和删除View,所以就要用到ViewGroup中的removeView和addView,按理来说应该很简单,但是我遇到了一个问题,发现removeView无效。 最后发现:当你要remove的View正在执行Animation效果的时候,是无法remove掉的,所以需要先clea

2017-04-10 18:07:13 3541 1

原创 自定义View----带进度的返回顶部按钮

记得原来一直想实现以下这样一个组件,最近抽时间完成了,花的时间也不多,实现起来也比较容易,算是自定义组件的另一种形式吧,最近入了自定义View的坑,写了好几个DemoToTopView1.功能1.滑动过程中:显示进度 2.滑动停止:显示点击返回顶部 3.点击返回顶部2.实现思路1.滑动监听:滑动状态+滑动位置 2.UI:重写RelativeLayout,实现组件的覆盖,底层:ImageView

2017-04-10 17:12:47 658

原创 实现自己的开源库----JitPack使用体验

最近热衷于写自定义View,但是感觉仅仅是实现了自定义View,放到Github不够爽,想和别人大神一样,能直接compile一下,直接能用多炫酷啊,网上搜了一下,有三个平台可以实现这个需求: 1.发布到Jcenter 2.发布到Maven 3.发布到JitPack 看别人的说法好像是前两个比较繁琐,并且还需要审核,第三个比较容易上手,所以选择了第三个,总结一下使用过程吧。官方主页: ht

2017-03-31 14:56:44 590

ImageLoader本地图片加载和GitHub上ImageLoader加载网络图片集成

集成了ImageLoader加载本地图片,和GitHub上ImageLoader加载网路图片的使用,其中,网路图片的url需要换一下图片地址,因为我用的是我自己搭建的服务器地址图片

2016-04-15

imageloader本地加载图片

imageloader加载本地图片,利用线程池,缓存,LIFO,防止大量图片加载导致OOM(代码中加有注释理解)

2016-04-10

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

TA关注的人

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