自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Hankkin的博客小园

将来的你一定会感激现在努力的自己

  • 博客(94)
  • 资源 (5)
  • 收藏
  • 关注

原创 7. JetpackNote---基于Jetpack的学习笔记APP

JetpackNote 是一款基于谷歌官方组件Jetpack开发的笔记项目,项目中包含了对各大组件的源码分析、Demo使用:Navigation、Lifecycles、Paging、LiveData、ViewModel等…\n项目使用Kotlin语言进行编写,依赖库截止代码编写时为最新版本,的几篇源码分析我们分别对Navigation、Lifecycles、ViewModel、LiveData...

2019-09-10 17:30:59 654

原创 6. Jetpack---Paging你知道怎样上拉加载吗?

之前的几篇源码分析我们分别对Navigation、Lifecycles、ViewModel、LiveData、进行了分析,也对JetPack有了更深入的了解。但是Jetpack远不止这些组件,今天的主角—Paging,Jetpack中的分页组件,官方是这么形容它的:‘’逐步从您的数据源按需加载信息‘’如果你对Jetpack组件有了解或者想对源码有更深入的了解,请看我之前的几篇文章:1. J...

2019-08-26 22:52:28 1496 3

原创 5. Jetpack源码解析---ViewModel基本使用及源码解析

截止到目前为止,JetpackNote源码分析的文章已经有四篇文章了,这一系列的文章我的初衷是想仔细研究一下Jetpack,最终使用Jetpack组件写一个Demo,上一篇已经分析了LiveData,本篇文章将分析ViewModel.1.背景Jetpack源码解析系列文章:1. Jetpack源码解析—看完你就知道Navigation是什么了?2. Jetpack源码解析—Naviga...

2019-07-16 11:30:40 655

原创 4. Jetpack源码解析—LiveData的使用及工作原理

1. 背景上一篇我们分析了Lifecycles组件的源码,本篇我们将继续分析LiveData组件相关系列文章:1. Jetpack源码解析—看完你就知道Navigation是什么了?2. Jetpack源码解析—Navigation为什么切换Fragment会重绘?3. Jetpack源码解析—用Lifecycles管理生命周期2. 基础2.1 简介LiveData是一个可观察...

2019-07-10 09:47:02 645

原创 2. Jetpack源码解析---Navigation为什么切换Fragment会重绘?

上篇文章我们简单的介绍了Navigation组件的使用,以及深入分析了源码中的具体实现,基本原理我们已经很清晰了。本篇文章主要介绍下我在项目中遇到的问题,以及目前关于Navigation实现的一些探讨。还没有看过上篇文章的可以查看一下:Jetpack组件之Navigation—看完你就知道Navigation是什么了?1. 背景先来看一下Navigation组件在官方文档上的介绍:今...

2019-06-28 15:00:36 5175 10

原创 1. Jetpack源码解析---看完你就知道Navigation是什么了?

1. 背景之前已经翻译过了Google官方的CodeLabs上面的教程,教程很详细,代码在Github上也可以找到,本篇文章旨在自己的APP上使用效果及演示Demo,来具体的使用Navigation。并且对其进行源码解析。基本相关介绍可以查看我之前翻译的文章,基本就是google翻译了一个大概。一、Android Jetpack_Note_CodeLabs一Navigation2. ...

2019-06-26 17:41:52 2159

原创 3. Jetpack源码解析---用Lifecycles管理生命周期

1. 背景上一篇我门对Jetpack组件中的Navigation做了介绍,并且对其做了源码分析,相信看过之后已经对此有了一定的了解,本篇文章我们会对Lifecycles进行使用及源码的介绍,还没看上篇的可以看一下:1. Android_Jetpack组件—Naviagtion源码解析2. 基础2.1 简介Lifecycles是一个持有组件生命周期状态(如Activity、Fragme...

2019-06-11 15:23:41 568

原创 Reading:一款不错的Material Desgin风格的Kotlin版本的开源APP

Readinghttps://github.com/Hankkin/Reading简介 很久不见,重新拾起博客吧,今天分享一个开源APP-Reading,项目的初衷是因为自己平时翻文章,但是公众号又经常忘记看,自己索性搞一个APP吧,顺便练一下Kotlin。借助着WanAndroid OpenApi搞起,同时里面加了一些小工具,具体功能向下看吧,然后也尝试了一下以前想实现但是没...

2018-08-22 16:42:56 816

原创 Base封装(一)--我的最简MVP架构

绪论最近懒癌症犯了,好久都没写博客了,当然也在做一些东西,也在整理自己一直以来使用的一些技术点,从Retrofit到OkGO,从ListView到RecycleView,从Java到Kotlin….总之一直在尝试新的技术,今天分享一下自己一直所用的MVP,整理完了分享给大家,有不合适或者不正确的地方还希望大家多多指正,共同交流。 对了 打一波广告 我的新的个人博客 http://hankkin.

2017-06-19 18:42:34 5027 2

原创 Android谈谈封装那些事--BaseActivity和BaseFragment(一)

绪论圣诞节怎么过?我不过圣诞节,被票圈的晒幸福虐惨了,还是在家里面总结总结自己吧。上篇文章 Android自定义View–自己撸一个柱状图也没那么难 我说过会封装一套属于自己的库,争取在元旦之前发出来,作为新年礼物给自己,给大家。好了,今天我们先来聊聊自己在项目中以及参考大神们的代码怎么来封装自己的BaseActivity和BaseFragment。怎么封装?说到封装我们首先想到的就是面向对象,

2016-12-25 20:43:22 10725 5

原创 Android自定义View--自己撸一个柱状图也没那么难

绪论 转眼间,2016伴随着互联网寒冬和帝都的雾霾马上就过去了,不知道大家今年一整年过得怎么样?最近票圈被各个城市的雾霾刷屏,也被各个公司裁员、移动开发人员失业,互联网行业不景气等等刷爆了。作为一名Android开发的小白来说,内心难免会动荡,庆幸自己早出来一年,也担忧着自己的未来的职业规划。无所谓了,既然选择了这个行业,我觉得大家就应该坚持下去,路是自己走的,及时再寒冬,只要你足够优秀,足够努

2016-12-20 23:40:55 12514 13

原创 Android--仿淘宝商品详情(继续拖动查看详情)及标题栏渐变

本文已授权微信公众号:鸿洋(hongyangAndroid)在微信公众号平台原创首发。源码已经上传到我的Github上了,希望小伙伴们Follow,star,fork (https://github.com/Hankkin/TaoBaoDetailDemo)二维码下载预览:绪论最近一直比较忙,也没抽出时间来写博客,也不得不说是自己犯了懒癌,人要是一懒就什么事都不想做了,如果不能坚持下来的话,那么

2016-09-12 09:40:51 19081 17

原创 Retrofit--合理封装回调能让你的项目高逼格

绪论前面我们讨论了使用Retrofit时怎样去设置OKHttp,包括持久化管理Cookie、设置网络超时、设置打印拦截器、设置缓存、Header等等,详细可查看 Retrofit–使用Retrofit时怎样去设置OKHttp Retrofit+OKHttp 教你怎么持久化管理Cookie 今天我们讨论的主题是怎么封装回调才能完美的适应自己的需求。我们都知道代码风格是每个人都有自己的风格,不可能

2016-06-20 14:05:12 23597 18

原创 Retrofit--使用Retrofit时怎样去设置OKHttp

绪论:之前我们分析了使用Retrofit怎么用OkHttp持久化管理Cookie,今天打算继续跟大家来分享一些关于怎么去设置OKHttp?如果你还不知道怎么持久化管理Cookie,请看这篇文章: Retrofit+OKHttp 教你怎么持久化管理Cookie,好了,废话不多说,开始今天的分享:大家都知道Retrofit是Square公司基于OkHttp推出的一个高解耦的网络框架,至于为什么又出来一个

2016-05-12 22:22:02 11878 2

原创 Retrofit+OKHttp 教你怎么持久化管理Cookie

绪论最近小编有点忙啊,项目比较紧,所以一直在忙活项目,继之前的自定义组件之后就没再写博客了,如果你没看到之前的自定义组件你可以看一下: Android自定义下拉刷新动画–仿百度外卖下拉刷新 Android自定义组合控件—教你如何自定义下拉刷新和左滑删除 效果还行,源码也已经传到我的Github上了。 那么今天小编来给大家分享点什么呢?对,就是它:Retrofit,话说Retrofit最近真的

2016-05-08 13:46:43 34183 30

原创 Android自定义组合控件---教你如何自定义下拉刷新和左滑删除

绪论最近项目里面用到了下拉刷新和左滑删除,网上找了找并没有可以用的,有比较好的左滑删除,但是并没有和下拉刷新上拉加载结合到一起,要不就是一些比较水的结合,并不能在项目里面使用,小编一着急自己组合了一个,做完了和QQ的对比了一下,并没有太大区别,今天分享给大家,其实并不难,但是不知道为什么网上没有比较好的Demo,当你的项目真的很急的时候,又没有比较好的Demo,那么“那条友谊的小船儿真是说翻就翻啊”

2016-04-24 17:21:01 16089 30

原创 Android自定义下拉刷新动画--仿百度外卖下拉刷新

好久没写博客了,小编之前一段时间一直在找工作,从天津来到了我们的大帝都,感觉还不错。好了废话不多说了,开始我们今天的主题吧。现如今的APP各式各样,同样也带来了各种需求,一个下拉刷新都能玩出花样了,前两天订饭的时候不经意间看到了“百度外卖”的下拉刷新,今天的主题就是它–自定义下拉刷新动画。看一下实现效果吧: 动画我们先来看看Android中的动画吧: Android中的动画分为三种:Tween

2016-04-11 12:01:19 20430 16

原创 一款基于Material Desgin设计的APP

源码小编已经上传到github上了,求star啊 https://github.com/Hankkin/TaoSchool前言好久没写博客了,小编最近在研究Material Desgin(以下简称MD),话说现在市场的上App好多都用上了MD,先简单的介绍以下MD吧,它到底是个什么东东啊? 看看官方文档吧(中文版的呦) http://wiki.jikexueyuan.com/project/m

2016-01-01 14:39:41 12560 11

原创 五味2019

前言恍恍惚惚又是一年,明天就是2019年的最后一个工作日,本想着公历2020年之前写自己的2019总结,没想到明日复明日,一直复到了今天,不过也还好,毕竟农历还是2019年。趁着最后一个工作日之前,总结一下我的今年:我的2019,有激情、有慵懒、有创新、有平淡、有不甘、有失利,最后也有目标…移动端重构----激情今年是我在58的第二年,前一年没什么大事,平平淡淡写需求,除了业务还是业务...

2020-01-16 23:01:36 1251

原创 Dart 异步

Dart是基于事件循环机制的单线程模型一条执行线上,同时且只能执行一个任务(事件),其他任务都必须在后面排队等待被执行。也就是说,在一条执行线上,为了不阻碍代码的执行,每遇到的耗时任务都会被挂起放入任务队列,待执行结束后再按放入顺序依次执行队列上的任务,从而达到异步效果。单线程模型按照代码编写的顺序,自上而下运行,这是我们所认知的,但是当遇到耗时操作(IO/网络请求)等,会给UI造成卡顿阻...

2020-01-11 15:28:13 787

原创 Dart 相关语法笔记

1. 级联操作符 //常规操作 var paint = new Paint(); paint.strokeCap = StrokeCap.butt; paint.strokeWidth = 1; paint.style = PaintingStyle.fill; //级联操作符 var paint1 = new Paint(); pain...

2020-01-09 15:53:37 522

原创 Kotlin初级(2)- - - 空安全.md

空类型、空安全为了解决类似NPE这类的问题,现代编程语言包括Kotlin解决这类问题的方法就是把运行时的错误转变成编译期的错误。通过支持作为类型系统的一部分的可空性,编译器就能在编译期发现很多潜在的错误,从而减少运行时抛出异常的可能性变量的定义Kotlin中的变量修饰符只有两个val修饰的变量不能重新被赋值var修饰的变量可以被重新赋值var修饰的变量不可为null,val修...

2018-09-27 14:40:39 289

原创 Kotlin中级(9)- - - Kotlin类之数据类、密封类、内部类.md

数据类1.声明data关键字data class Leaf(val size: String,val color: String,val shape: String,val vein: Int)2.数据类声明条件主构造函数最少要有一个参数数据类的主构造器的所有参数必须标记为val或var数据类不能是抽象类、open类、封闭类、内部类数据类不能继承自任何其他类(但可以实现接口...

2018-09-24 18:50:00 555

原创 Kotlin中级(8)- - - Kotlin类之接口、枚举.md

一、接口在Kotlin中,一个类只能继承一个普通类或者抽象类。通过接口我们可以进行多实现interfaceinterface Demo{ }关键字:冒号(

2018-09-24 18:49:39 384

原创 Kotlin中级(7)- - - Kotlin类之抽象类、重载和重写.md

1.抽象类抽象类是不可直接被实例化的,因为它有一部分属性和方法没有被完整的赋值和体现。也就是说,抽象类是在告诉要继承的类:我有一些方法和属性没有具体实现,我命令你去把它们弄完整abstract其中值得注意的是:抽象可以分为抽象类、抽象函数、抽象属性。而一个抽象类和普通类的区别在于抽象类除了可以有其自己的属性、构造函数、方法等组成部分,还包含了抽象函数以及抽象属性。抽象类的规则在K...

2018-09-24 18:49:21 701

原创 Kotlin中级(6)- - - Kotlin类之的继承.md

Kotlin继承类1.超类(Any)在Kotlin中,所有的类都是继承自Any类,这是一个没有父类型的类。即当我们定义各类时,它默认是继承于Any类的例如:class Person因为Any这个类只是给我们提供了equals、hashcode、toString三个方法,我们可以看看Any这个类的源码实现package kotlin/** * The root of the ...

2018-09-21 18:10:46 553

原创 Kotlin中级(5)- - - 初识Kotlin中的对象.md

万物皆对象对象就是类的实例化用Kotlin描述对象class Friend{ var name: String = "" var hairColor: String = "" .....}愉快的构造1.主构造函数:class Friend constructor(val name: String,val age: Int){}主构造二下面这种构造...

2018-09-21 18:10:22 308

原创 Kotlin初级(4)- - - 字符串和字符.md

字符串Kotlin中字符串是有序的字符的集合常用方法1.isEmpty()用来判断字符串为空2. count()或者length获取字符串中的字符数目3.get(i)或者[i]获取指定位置的字符4.substring()截取某一段字符串5.index索引indexOf()、lastIndexOf()、indices索引范围6.contains()7....

2018-09-20 23:49:38 754

原创 Kotlin初级(3)- - - 基础函数.md

函数的声明和使用Kotlin中函数的声明使用关键字 fun格式为:可见性修饰符 fun 函数名(参数名 :类型):返回值{}例如:fun main(){ }上面的例子没有可见性修饰符,因为Kotlin中默认为public函数没有返回值时可以省略函数的作用范围1.成员函数成员函数是指在类或对象中的内部函数例如:class Demo{ fun ma...

2018-09-20 23:49:19 519

原创 Kotlin初级(2)- - - 空安全.md

空类型、空安全变量的定义Kotlin中的变量修饰符只有两个val修饰的变量不能重新被赋值var修饰的变量可以被重新赋值var修饰的变量不可为null,val修饰的可为nullval a: Int? = nullvar b: Int变量a在使用的时候需要判断改变量是否为null,变量b则不需要了,因为这个变量永远不会为null可空类型的判断if elseval s...

2018-09-20 23:49:00 291

原创 Kotlin初级(1)- - - 基础.md

package和import使用package包可以将代码分割到各个命名空间内。所谓命名空间,就好比咱们的国内重名的地区非常多,如果单独将一个地名,很可能引起歧义,但如果按省来划分,就解决了重名的问题,如马鞍山,有安徽的,南通的,香港的,这里的安徽、南通、香港就成了一个命名空间,命名空间还可以分层次,如美国.纽约州.麦哈顿。在Kotlin中,任意源文件都可以用一个package声明。异常处理...

2018-09-20 23:48:07 256

原创 【PageLayout】非常简单的一键切换加载-空数据-错误页,支持自定义

项目中我们经常会用到的加载数据,加载完数据后显示内容,如果没有数据显示一个空白页,这是如果网络错误了显示一个网络错误页,自定义一个PageLayout。绪论Android中经常使用一个空白页和网络错误页用来提高用户体验,给用户一个较好的感官,如果获取到的数据为空,那么会显示一个空白数据页,如果在获取数据的过程中网络错误了,会显示一个网络异常页,像最近比较火的某东这样,见下图。网...

2018-09-10 19:32:15 2368

原创 Android中你可能忽略的知识点(1)-分辨率那些事

2018-05-10 11:26:32 695

原创 Base封装(二)-- 封装属于自己的Library(UI篇)

绪论之前分享了一篇 Base封装(一)–我的最简MVP架构简单的封装了自己的MVP架构,至于BaseActivity和BaseFragment之前的文章都已经分享过了,只不过做了一些优化。接下来继续分享我的封装之路,今天要分享的是常用的UI,同样大家看到不合适的地方多多指正啊..常用组件在写一个APP的时候我们通常都会用到一些常用的组件,慢慢的积累下来了就存到自己的库里面,以后写项目的时候就不用再去

2017-06-21 18:43:55 2007 2

原创 我的2016--远方不一定有诗,但有更好的自己

绪论抓住2016的最后一个工作日,写一篇年终总结,想不出来好的题目了,好久不玩楸楸的我在空间看到大家都在发自己的新年关键词,抽了自己的拿过来做题目。早上起床莫名的不开心,或许是昨天晚上跟朋友聊得太多;亦或许是真的又到了年末才发现今年还有那么多事没做;亦或许是因为什么….概述我的2016几个关键词:帝都、成长、一段代码、一盒紫云、一杯☕️,仅此而已。 16年年初,因为上家公司的技术转型影响到了自己的

2016-12-30 11:36:07 4791 17

原创 Android谈谈封装那些事--BaseActivity和BaseFragment(二)

1.前言昨天谈了BaseActivity的封装, Android谈谈封装那些事–BaseActivity和BaseFragment(一) 有很多小伙伴提了很多建议,比如:通用标题栏可以自定义View而不放在Base里面,代码更统一BaseEventActivity里面应该留出开关保证不需要Bus的Activity使用BaseStatusActivity里面就一个方法没必要新建一个还有一些

2016-12-26 21:06:02 6679 3

原创 Android--仿淘宝商品详情(继续拖动查看详情)及标题栏渐变

绪论最近一直比较忙,也没抽出时间来写博客,也不得不说是自己犯了懒癌,人要是一懒就什么事都不想做了,如果不能坚持下来的话,那么估计就废了,��。最近自己攒了好多东西,接下来的时间我会慢慢都分享出来的。好了废话不多说了,下面我们开始正题: 今天要分享的是淘宝的详情页,之前在淘宝上买东西的时候看到淘宝的详情页效果比较不错,所以今天就来仿一下它的效果吧,可能没有淘宝的好,希望见谅啊。效果图先上效果图: ...

2016-09-12 09:45:57 1907

原创 Android带你解析ScrollView--仿QQ空间标题栏渐变

绪论今天来研究的是ScrollView-滚动视图,滚动视图又分横向滚动视图(HorizontalScrollView)和纵向滚动视图(ScrollView),今天主要研究纵向的。相信大家在开发中经常用到,ScrollView的功能已经很强大了,但是仍然满足不了我们脑洞大开的UI设计师们,所以我们要自定义…本篇文章主要讲监听ScrollView的滑动实现仿QQ空间标题栏渐变,先看一下效果图: 好了我

2016-08-03 21:40:53 19958 11

原创 Retrofit--记使用Retrofit时遇到的一个坑

绪论很久没有写博客了,上次是写了使用Retrofit时怎么设置OKHttp,如果你没看到请看: Retrofit–使用Retrofit时怎样去设置OKHttp 你也可以看看我是怎样使用Retrofit的: Retrofit–合理封装回调能让你的项目高逼格 好了,今天说一下我遇到的一个坑吧。Retrofit Cookie问题上次我们说过怎么去实现持久化登录,本地保存用户的cookie: 1.

2016-08-02 22:43:20 6275 2

原创 Android自定义组合控件---教你如何自定义下拉刷新和左滑删除

绪论最近项目里面用到了下拉刷新和左滑删除,网上找了找并没有可以用的,有比较好的左滑删除,但是并没有和下拉刷新上拉加载结合到一起,要不就是一些比较水的结合,并不能在项目里面使用,小编一着急自己组合了一个,做完了和QQ的对比了一下,并没有太大区别,今天分享给大家,其实并不难,但是不知道为什么网上没有比较好的Demo,当你的项目真的很急的时候,又没有比较好的Demo,那么“那条友谊的小船儿真是说翻就翻啊...

2016-04-24 20:16:21 219

MaterialDesgin之水波纹效果

MaterialDesgin设计之水波纹效果

2015-11-04

AnimationPullToRefreshDemo

一个特别好看的下拉刷新控件,有喜欢的小伙伴可以下载看一下

2015-08-30

Android XML解析之SAX解析

Android XML解析之SAX解析 简单方便的解析方法

2015-08-26

可清除的输入框

可以清除的输入框,自定义了一个集成edittext

2015-08-11

activitycollection框架

好用的一款第三方框架,几步搞定底部导航栏的功能,只需要几句代码就可以实现啦

2015-04-03

空空如也

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

TA关注的人

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