自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

fashare 的博客

性别:男 爱好:男 特长:面向基佬编程

  • 博客(27)
  • 收藏
  • 关注

原创 No ViewHolder!!! 一个非官方的纯java版 databinding(拒绝xml配置).

写在前面 我们的目标是 No ViewHolder and No Adapter.官方的databinding的确十分厉害,各种xml绑定,然后自动生成一波文件,各种吊的飞起,不过容易让人抓不住重点。为了加深理解,我写了这个纯java版的databindng, 不需要xml各种配置android:text="@{...}",同时进一步加了绑定Adapter。 时间仓促,只粗略的实现了小部分

2017-03-16 04:14:14 746

原创 把 ViewPager 撸成栈

把ViewPager撸成栈最近有看到一些栈式列表的效果,突然发现ViewPager也能做到较为简易的效果,实在是迫不及待。效果图这还是你熟悉的ViewPager么?源码https://github.com/fashare2015/StackPageTransformer使用很简单就一个类 —— StackPageTransformer.没有打成jar包,使用时直接复制源码即可:StackPageTr

2017-02-17 02:05:41 1411

原创 解耦解的早,改需求没烦恼

摘要 世上本没有解耦,需求改的多了也便有了解耦。 —— 产品经理本例将通过一个计时控件,聊聊如何解耦~本TimerView仅作为demo,不保证其健壮性,请勿在实际项目中使用。特点UI容器与计时逻辑分离UI容器与具体UI布局分离源码https://github.com/fashare2015/TimerViewLet’s Go话说,小明在做一个电商项目,有个倒计时需求。需求1.0要求”时

2017-01-17 02:12:07 820

原创 基于 Gradle 的 Android gif 录屏脚本,录屏并自动上传至电脑,给常写博客的你~

介绍基于 Gradle 的 Android gif 录屏脚本,自动上传至电脑~ 源码https://github.com/fashare2015/gradle-screen-record 支持的操作系统Mac osx使用0. gradle 开发环境Gradle 是必不可少的啦。1. 工具准备 (已经安装的话,请跳过这部分)请确保已经安装了这些工具adb: 我们用它来录屏,生成’.mp4

2017-01-06 14:33:39 948

原创 自制悬浮框,愉快地查看栈顶 Activity

写在前面接手陌生模块时,如何快速了解每个页面对应的类,以及它们之间的跳转逻辑。总不能在代码里一个一个地找startActivity()吧?有时候,又想查看别人的 app 的页面组织(像淘宝、微信啊),总不能一个一个反编译吧?总想着有没有工具查看当前的Activity,于是自己弄了一个,这下就方便了。 效果图先看下淘宝好了: 我好像看到了com.taobao.weex.XXX,难道weex已

2016-12-27 00:20:36 5260 11

原创 CoordinatorLayout 子 View 之间的依赖管理机制 —— 有向无环图

写在前面这几天接触了CoordinatorLayout和所谓layout_behavior,然后进一步理了一遍源码。有两点惊艳到了我,一个是嵌套滑动机制,再一个便是依赖管理机制。对于嵌套滑动NestedScroll的分析,网上有挺多博客。那本文打算从依赖管理的角度来讲一些东西。 效果图这是一个模仿java继承关系的例子,定义了一个DependencyBehavior来描述继承关系。 即A ext

2016-12-20 00:50:20 2655 2

原创 下拉回退 Activity,layout_behavior 还能这么玩?

写在前面熟悉layout_behavior的朋友都知道,它是CoordinatorLayout的重要属性。不过,你该不会以为它只能用在NestedScrollingChild上吧?如果你真这么觉得,它可会很伤心的:人家才没有这么弱呢。 其实它的能力远远不止这些。这里和大家分享一个 Demo 和心得。 效果图这次仿的是“下拉回退”效果,来自 https://github.com/nickbutch

2016-12-17 17:18:18 4521 3

原创 Android 简易悬停抽屉控件 —— 仿知乎收藏夹

写在前面一直觉得知乎的交互体验是很好的,这次山寨了一把。 这是一个底部抽屉,类似知乎收藏夹。它可以悬停在中间,随着滑动自然过渡到全屏。 它是仿照support包里的DrawLayout和NavigationView设计的。 效果图知乎收藏夹:可以悬停在中间可以滑动到全屏过渡十分流畅,纵享丝滑 我的 HoverView :可以悬停在中间可以滑动到全屏过渡尚可,没有知乎的流畅

2016-12-14 22:18:03 7538 2

原创 从 Retrofit 源码中学习设计模式(上)

写在前面Retrofit 是我用过最友好的网络请求框架。无论是优雅的注解Api,还是强大而灵活的拓展性,都是其流行的一大要素。现如今,它的火爆程度完全不亚于 Rxjava。对于它的成功,api 的友好性是一方面,更深层的原因在于其精妙的解耦,而它的源码更是设计模式的教科书! 我乘机研究了一下源码,同时参考了一些博客,想扒一扒这个轮子的设计理念。 摘要本文基于 Retrofit 2.0.0-bet

2016-12-07 02:43:07 1260

原创 从 ButterKnife 到“编译时注解”实战

写在前面下面是一些关于注解的个人认识,可以跳过,直接从知识点部分看起。自从注解出现以后,很多框架都喜欢用它来干活,显得轻便优雅。我最早邂逅的还是@Override这个家伙,那时对一些语言特性还不了解,觉得很怪。然而一旦接受了这个设定,还是挺带感的。现在看不到它还会浑身难受。一开始,注解是为编译时检查服务的,不会影响程序运行,反而增强了程序的可读性。常见的有:@Override: 检查是否正确重写

2016-11-21 00:08:19 2077

原创 ViewPager 源码分析(二) —— 关于 notifyDataSetChanged()

写在前面关于 ViewPager,我准备写一个系列。我水平也不咋地,估计有不少纰漏,各位爱看不看:ViewPager 源码分析(一) —— PagerAdapter 与页面缓存 知识点上回说到PagerAdapter这个类以及setAdapter()和populate()如何在数据变化时重建和销毁页面。本节我们继续来看PagerAdapter,体味一下 android 中典型的观察者模式。其中涉

2016-11-16 01:26:05 734

原创 ViewPager 源码分析(一) —— setAdapter() 与 populate()

写在前面做安卓也有一定时间了,虽然常用控件都已大致掌握,然而随着 Android N 的发布,不自觉的愈发焦虑起来。说来惭愧,Android L 的 Material Design 库里的许多控件都还没用过,照这样下去迟早要被新技术所淘汰。那该怎么办呢,偶然间我看到一篇博文如此说到:“不要觉得 android 里边控件繁杂多样,官方或第三方新控件层出不穷,其实真正的控件就只有两个View和ViewG

2016-11-08 01:02:58 4063

原创 android 二级联动列表,仿eleme点餐页面

写在前面最近手感不错,老想写点轮子。正好周末外卖点得多,就仿一仿“饿了么”好了。先上图吧,这样的订单页面是不是很眼熟:右边的listview分好组以后,在左边的Tab页建立索引。可以直接导航,是不是很方便。关键在于右边滑动,左边也会跟着滑;而点击左边呢,也能定位右边的项。它们存在这样一种特殊的交互。像这种联动的效果,还有些常见的例子呢,比如知乎采用了常见的toolbar+viewPager的联动,只

2016-10-19 00:24:52 16583 4

原创 手撸注解框架 —— 仿 Retrofit

前言说起注解框架,不得不说的是 ButterKnife,Retrofit,还有 Dagger。想来全是 Square 公司的作品,不由得心生膜拜。。。最近一直在用 ButterKnife,看了下源码也有一些感悟。人家大神写代码就是高大上,就为了省一行代码 findViewById(),硬生生撸了一个库出来。。。 以前没感觉,现在感觉注解真 TM 好用。俺也要用注解省代码!!!项目地址项目完整代

2016-10-13 01:41:14 1993

原创 Android 技能树

摘要学习 android 也有一段时间了,感觉一直在打游击战。东看一点西看一点,总是不够系统。为此,特地腾出时间整理一些资料,罗列一些重要的技能点。持续更新中。。。先大致分为如下几块吧:java基本语法(封装、继承、多态;锁机制、范型、反射、注解、lambda)常用包(Collection、lang、concurrent、io、nio、java8 的 stream)jvm 虚拟机设计模式单例

2016-09-29 01:29:33 2049

转载 可能是东半球最全的RxJava使用场景小结

原文链接:可能是东半球最全的RxJava使用场景小结一、Scheduler线程切换这种场景经常会在“后台线程取数据,主线程展示”的模式中看见[html] view plain copyprint?Observable.just(1, 2, 3, 4)              .subscribeOn(Schedu

2016-09-18 12:03:02 910

原创 RxJava 源码分析之 —— lift 变换

写在前面 rxjava 一直很火,我也用了一段时间,感觉特别好用。它属于响应式编程(Reactive Programming,以下简称 RP),脱胎于观察者模式。两者的对比如下:观察者模式:observable -> observer响应式编程:observable -> lift1 -> lift2 ->… ->observer 可以看到,RP 的特点是在观察的基础上,加入了传播路径上的变

2016-09-13 17:41:59 910

转载 Android屏幕适配全攻略(最权威的官方适配指导)

转载请注明出处:http://blog.csdn.net/zhaokaiqiang1992Android的屏幕适配一直以来都在折磨着我们这些开发者,本篇文章以Google的官方文档为基础,全面而深入的讲解了Android屏幕适配的原因、重要概念、解决方案及最佳实践,我相信如果你能认真的学习本文,对于Android的屏幕适配,你将有所收获!Android屏幕适配出现的

2016-09-08 15:27:26 631

转载 浅尝安卓事件分发机制

浅尝安卓事件分发机制                                                                   标签:              android<a href="http://www.csdn.net/tag/%e6%ba%90%e7%a0%81" target="_blank" onclick=

2016-09-07 15:51:35 1157

转载 Android Studio插件推荐-GsonFormat,ButterKnifeZelezny

原创文章,转载请注明 http://blog.csdn.net/leejizhou/article/details/50557786 本篇介绍的只适用android studio和 Intellij IDEA 开发工具,还在用Eclipse的朋友们这篇博文不适合你,还是看看我的其他文章吧:)《Android Studio插件推荐》系列后续会给大家分享一些在Android Studio上

2016-09-05 18:09:34 461

原创 自定义View —— FlowLayout

自定义View —— FlowLayout摘要 最近研究了一下 View 和 ViewGroup 这个东东, 然后想着动手写点什么。 于是实现了一下 FlowLayout —— 自动换行的标签布局。先上效果图: 背景知识 关于自定义 view,你需要了解 view 的构造流程。 我总结了一下,大体是这样的 onMeasure -> onLayout -> onDraw。

2016-09-05 16:44:41 444

原创 RxJava 初探(网络请求)

RxJava 介绍写在前面rxjava 也用了好多次了。时隔多年,才终于有勇气挖一下它的源码。 这次主要研究了发布订阅流程 subscribe() 以及核心变换 lift(),至于其他的像线程切换 Schedulers、丰富的操作符啊,都有待研究。 之后可能会再更新几篇,也可能就太监了。。。 1.RxJava 源码分析之 —— lift 变换 What is RxJava?RxJava 的思想

2016-06-08 00:33:52 3724

原创 java 并发实践 - Chapter 2(Thread Safety) 笔记

Thread Safety 要做到线程安全,核心是控制对状态(state)的访问。 (对象的)状态:通常是指它那些共享的(shared)、可变的(not final)的成员变量。我们知道,线程之间是共享内存的(成员变量都分配在内存中)。所以它们有能力同时访问同一个 state ,这将破坏线程安全。我们需要某种机制进行访问的同步。 相比之下,由于线程之间各自持有堆栈,这些堆栈不是共享的。

2016-06-01 14:13:17 488

原创 AIDL 实现 IPC(进程间通信)

AIDL AIDL即安卓接口定义语言,其语法类似java,用于定义一些特殊的接口。由来 就以 service 为例: android 常以 service 提供一些服务和数据,acticity 通过 binder 与service 进行数据交换(如 get 和 set )。然而,有时候 acticity 需要访问远程的 service (如别的应用程序提供的 service),之前的

2016-04-06 14:30:23 423

原创 关于深浅拷贝的一个小坑

关于深浅拷贝的一个小坑前言从 c++ 转到 java,对于 java 的基础一直不好。今天想刷几个题巩固一下基础,于是开心的刷起了 leetcode … 果然,不一会儿就掉坑里了… 心路历程题目到是不难,就求给定集合的子集,二进制枚举和深搜都能做。 题目链接:https://leetcode.com/problems/subsets/啪啪啪敲完,完全是 c++ 风格 … 怎么看都是对的,

2015-12-20 15:38:51 501

原创 WebView 初探

WebView 初探介绍WebView 是一个用于加载网页的控件,相当于嵌入式浏览器。有了它我们就能以 native 和 web 混合的形式开发。对于一些不重要的页面,可以交给前端实现,我们只需在 webview 里加载它,有效减轻了 native 的开发任务。// 加载页面String url = "http://www.baidu.com";webview.load(url); 当然用 w

2015-12-18 17:50:10 404

原创 开源组件PullToRefresh

开源组件PullToRefresh介绍:PullToRefresh:顾名思义,是一个支持下拉刷新的组件。它是一个老外编写的,功能强大,支持ListView,GridView等等,在github上比较火。 github地址:https://github.com/chrisbanes/Android-PullToRefresh最近在看自定义View的实现,特地找了几个开源项目研究一下:)第三方库引

2015-12-01 17:17:54 1145

空空如也

空空如也

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

TA关注的人

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