易水南风的专栏

Program makes us better~~

排序:
默认
按更新时间
按访问量

仿海报工厂效果的自定义View

近期做了一个自定义View,效果有些类似海报工厂,先看下效果图: 就是一个背景图,中间挖了若干个形状不同的“洞”,每个“洞”里放着一张图片,用手可以拖拽、缩放、旋转该图片,并且当前图片备操作时会有红色的高亮边框。点击选中某个图片的时候,底部会弹出菜单栏,菜单栏有三个按钮,分别是对该图片进行旋...

2017-09-02 11:58:55

阅读数:746

评论数:2

浅析安卓事件分发机制源码

最近工作需要需要做一些比较复杂的自定义View,其中事件分发的处理自然少不了,结合之前阅读过的大量资料,工作是完成了,但是对事件分发的处理总觉得很不清晰,知其然不知其所以然的感觉让人很不舒服。如果不知道事件分发原理,要是处理的情况很复杂的话,那就很难解决了。之前也看过任玉刚的《安卓开发艺术探索》对...

2017-07-09 21:48:56

阅读数:557

评论数:0

Android 图片加载框架Universal-Image-Loader源码解析

Universal-Image-Loader(项目地址)可以说是安卓知名图片开源框架中最古老、使用率最高的一个了。一张图片的加载对于安卓应用的开发也许是件简单的事,但是如果要同时加载大量的图片,并且图片用于ListView、GridView、ViewPager等控件,如何防止出现OOM、如何防止图...

2017-03-26 10:52:32

阅读数:1651

评论数:3

聊聊Volley源码(缓存流程)

上一下谈了Volley网络请求流程聊聊Volley源码(网络请求过程),今天来谈下请求的缓存流程。首先必须明确的是缓存的概念:缓存是“存贮数据(使用频繁的数据)的临时地方,因为取原始数据的代价太大了,所以我将它们存在容易取的地方,所以可以取得快一些。”在讲缓存流程之前,首先需要说明下Http的缓存...

2017-02-26 23:38:40

阅读数:251

评论数:0

聊聊Volley源码(网络请求过程)

上一篇博文基本溜了一圈Volley的整体流程 聊下Volley源码(整体流程),但是各个细节都没讲到,这篇文章准备讲下网络请求的细节过程。像上一篇博文所说,每个Volley请求,基本都是创建一个请求队列RequestQueue对象和一个具体的请求(比如StringRequest),然后将该请求ad...

2017-02-18 21:23:22

阅读数:432

评论数:0

聊下Volley源码(整体流程)

最近过年回来工作很清闲,于是变想找点事做,想起虽然看分析Volley源码的文章也不算少,但是还没有真正去研究过Volley源码,所以就好好研究它。 Volley大家想必都比较熟悉,作为谷歌官方推荐的网络请求库,必定很强大,可以满足广大群众的需求,像很多介绍Volley的博客一样,我也来一...

2017-02-11 22:02:12

阅读数:907

评论数:5

全面分析Handler消息机制

相信Handler大家都很熟悉了,最常见的用法就是在一个线程用Handler对象sendMessage,然后在UI线程该Handler对象执行handleMessage使用Message中的数据去更新UI。 Handler的最主要作用确实如此,但是作为Android系统一个很重要的组件如果对它的认...

2016-08-28 17:14:17

阅读数:1421

评论数:18

安卓AlertDialog源码浅析

最近工作需要,将AlertDialog的源码拷贝一份并替换为公司所要求的界面,这样就拥有了一个完全属于公司自己的弹窗。在这个过程中,也研究了AlertDialog的源码,觉得也有不少的收获,于是分享一下,如果可以帮助同行更好熟悉Alert Dialog那就更wonderful了。以下为安卓版本为5...

2016-07-24 14:37:48

阅读数:2297

评论数:0

Glide列表预加载组件RecyclerViewPreloader源码解析

鼎鼎大名的安卓图片加载框架Glide有一个可能大家比较少用的功能,就是RecyclerView滑动的预加载组件RecyclerViewPreloader ,它的功能就是在滑动列表的时候提前加载指定item图片数据进入内存,使得滑动的时候可以立即看到图片显示而不需要等待。Glide官方链接如何使用:...

2018-05-26 18:17:01

阅读数:21

评论数:0

极简Kotlin入门笔记

最近在学kotlin,看了一些入门资料,整理为以下笔记(极简的形式记录的),便于自己复习,也希望对其他人有帮助。kotlin是什么:首先可以看下维基百科总体了解:Kotlin以下关于Kotlin介绍章节摘抄于:写给Android开发者的Kotlin入门Kotlin也是基于JVM设计的编程语言,算是...

2018-04-15 15:27:01

阅读数:63

评论数:0

主流图片框架比较分析

最近我对几个主流图片框架进行了调研分析,整理出了文档:四大图片加载框架总体对比:性能测试:以下是个人对Glide、Fresco对比UImageLoader(鉴于Glidei 基本是Picasso的升级版,所以这里没有对Picasso进行测试)进行的简单性能测试(仅供参考):测试手机:华为荣耀8  ...

2018-03-11 13:05:39

阅读数:55

评论数:0

通过反射实现的仿ButterKnife功能Demo

用过ButterKnife的朋友都知道,ButterKnife可以使用@BindView和@OnClick等注解就可以省略掉繁琐的findViewById和setOnClickListener等代码,使得业务代码更加简洁清晰。对ButterKnife不熟悉的朋友可以看下:(http://jakew...

2017-11-18 15:19:04

阅读数:105

评论数:0

《深入理解Java虚拟机》笔记1

虚拟机运行时数据区域:**程序计数器(Program Counter Register):** 是一块较小的内存空间,它的作用可以看做是当前线程所执行的字节码的行号指示器(线程私有)。 由于Java虚拟机的多线程是通过线程轮流切换并分配处理器执行时间的方式来实现的,在任何一个确定的时刻,一个处理器...

2017-09-11 10:13:23

阅读数:149

评论数:0

《Effective Java》笔记之重写equals时要遵守的通用约定

最近在阅读鼎鼎大名的《Effective Java》,想把一些自己觉得比较经典的内容以笔记形式记录在博客中,这是第一篇,接下来一段时间会持续更新笔记。 重写quals方法看起来很简单,但是不正确的重写方式可能会导致错误,并且后果非常严重还不容易找到问题所在。 首先,要明白什么时候需要重写equ...

2017-06-18 20:42:47

阅读数:226

评论数:0

自定义View之头部可伸缩的ListView

最近看了动脑一些视频资料,讲的是通过自定义View实现一个头部可伸缩的ListView,觉得实现不难,而且思路挺有启发性的,于是就根据资料自己写了相关代码实现了一个。因为添加gif失败,就添加图片吧。。这里的思路首先是给ListView添加一个Header,一般是一个渲染一个包含一张图片的布局的V...

2017-05-14 13:20:59

阅读数:522

评论数:0

用Java实现求一个数组中的出现次数最多的元素的个数

前些天做笔试题的时候,遇到这一道题:用Java实现求一个数组中的出现次数最多的元素的个数。但是时间比较紧,我想出了先排序,然后遍历一遍,相邻元素相等则累计,不同则重新累计,遍历完就可以得到相同元素出现最多的元素。自认为还可以,不过面试官笑着对我说:“加入数组的元素不能排序呢?”。哦,我把数组默认当...

2017-04-09 12:17:38

阅读数:2190

评论数:0

极简经济学笔记1

经济学是一个思考问题的架构。   微观经济学:从个人和企业观点展开研究。 宏观经济学:经济整体观点。   经济学三个基础问题: 1.社会应该生产什么? 2.应该如何生产? 3.谁来消费所生产的东西?     三个问题是社会制度的基础,一种社会中,由政府决定答案,另一种社会中,...

2017-01-15 21:07:23

阅读数:249

评论数:0

一个小例子看懂java对象初始化执行过程

创建java对象对于做java程序开发的我们来说再简单不过了,也就是new 构造方法,不过很多人可能对于内部执行的过程不是很清楚。我们知道java的类是动态加载的,只有当需要的时候才会加载入虚拟机,分配内存,创建对象。本文就是用一个小例子来说明随想创建的一些基本过程。 看例子程序: 首先一个简单的...

2016-12-05 10:38:09

阅读数:1156

评论数:0

java多线程设计模式笔记之Active Object

今天要说的模式是前几个模式的综合体,也是这个系列的最后的一个模式,叫做接受异步消息的主动对象。与之相关的模式有java多线程设计模式之Future Pattern、 java多线程设计模式之消费者生产者模式、 java多线程设计模式之Guarded Suspension等,如果不了解这几个模式...

2016-12-04 11:16:48

阅读数:238

评论数:0

java多线程设计模式笔记之Future Pattern

想象一个场景,你去蛋糕店买蛋糕,先下订单之后,店员给你一张提货单,叫你下午来取货,下午你来取蛋糕,如果此时蛋糕已经做好了,则拿走蛋糕,如果没有做好,则你还得再等等。相对应的程序场景,主线程要得到某些数据需要耗时操作,于是开了个子线程去生产数据,然后主线程去做别的事,等一段时间之后再去取回数据,实现...

2016-11-26 19:00:57

阅读数:670

评论数:0

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