- 博客(40)
- 收藏
- 关注
原创 文字路径动画控件TextPathView解析
文字路径动画控件TextPathView解析 本文出处: 炎之铠csdn博客:http://blog.csdn.net/totond 炎之铠邮箱:yanzhikai_yjk@qq.com 本项目Github地址:https://github.com/totond/TextPathView 本文原创,转载请注明本出处! 本篇文章已授权微信公众号 guolin_b...
2018-02-26 11:31:28 3811 10
原创 Kotlin作用域函数的使用经验
前言Kotlin给我们提供了很多Java没有的便利,作用域函数(Scope Function)就是Kotlin标准库里面的提供的一些让我们减少重复代码和提高可读性的一系列函数。下面结合我的使用经验来介绍一下Kotlin的作用域函数:是什么作用是什么怎么使用怎么选择对我们开发的启发介绍官网介绍如官网介绍所说,作用域函数(Scope Function)是能让我们创建一个临时的作用域,在这个作用域里可以有一个上下文对象给我们用,最后它还有返回值的一些函数,可以用包括:let、run、app
2020-06-22 16:17:35 649
原创 Kotlin里的takeIf和takeUnless
介绍我们使用kotlin的时候,会经常用到一些如let、apply、run这些作用域函数,它能让我们方便、简洁地链式调用对象的方法,除了这些,Kotlin标准库还提供了 takeIf 函数和 takeUnless 函数. 这些函数允许你在链式调用中加入对象的状态检查。官方文档在此使用场景我们在写if语句的时候经常会遇到这样的场景:前面调用了一个函数计算得出了一个结果,现在需要对这个结果做一个分支判断,并且我们只需要用到if的一个分支时,可以用takeIf和takeUnless代替如:
2020-05-12 10:30:21 10674 3
原创 尺子从一,分为四的故事(BooheeRuler的创造和重构思路)
尺子从一,分为四的故事(BooheeRuler的创造和重构思路) 本文出处: 炎之铠csdn博客:http://blog.csdn.net/totond 炎之铠邮箱:yanzhikai_yjk@qq.com 本项目Github地址:https://github.com/totond/BooheeRuler 本文原创,转载请注明本出处!前言 整整一...
2017-12-07 10:08:05 2374 6
原创 Android上一个扫描框风格的新手引导库
本文出处: 炎之铠csdn博客:http://blog.csdn.net/totond 炎之铠邮箱:yanzhikai_yjk@qq.com 本文原创,转载请注明本出处!简介 Github地址:https://github.com/totond/YGuider 这是一个扫描框风格的新手引导,效果如上图。
2017-10-23 15:27:09 6287 7
原创 回炉再造,灵活的YMenuView2.0诞生
出处: 炎之铠邮箱:yanzhikai_yjk@qq.com 博客地址:http://blog.csdn.net/totond 本文原创,转载请注明本出处! 本项目GitHub地址:https://github.com/totond/YMenuView 欢迎 Star or Fork!前言 之前把我项目用到的类似于PathView的菜单YMenuView抽离出来,分
2017-09-22 09:16:21 3964 4
原创 Android视频播放器的手势控制实现
出处: 炎之铠邮箱:yanzhikai_yjk@qq.com 博客地址:http://blog.csdn.net/totond 本文原创,转载请注明本出处! 本项目GitHub地址:https://github.com/totond/GestureTest前言 现在很多全屏的视频播放器现在都有这样的功能:左边上下滑动调节亮度,右边上下滑动调节音量,左右滑动调节快进快退,双
2017-09-07 14:41:11 8050 3
原创 Android手势检测——GestureDetector全面分析
出处: 炎之铠邮箱:yanzhikai_yjk@qq.com 博客地址:http://blog.csdn.net/totond 本文原创,转载请注明本出处!前言 在很多视频播放器中,都存在使用不同的手势来控制进度、亮度\音量和暂停播放等功能。Android提供了一个GestureDetector来帮助我们识别一些基本的触摸手势(还有ScaleGestureDetector可以识
2017-09-07 14:29:34 35240 10
原创 Android触摸事件传递机制实践——可拖动、大小切换的SizeSwitchView
出处: 炎之铠邮箱:yanzhikai_yjk@qq.com 博客地址:http://blog.csdn.net/totond 本文原创,转载请注明本出处! 本项目GitHub地址:https://github.com/totond/SizeSwitchViewDemo 欢迎 Star or Fork!前言 对于Android的触摸事件传递机制,网上有很多讲解,有结
2017-08-28 15:20:00 4657 6
原创 Android上一个类似PathMenu效果的自定义View源码分析
出处: 炎之铠邮箱:yanzhikai_yjk@qq.com 博客地址:http://blog.csdn.net/totond 本文原创,转载请注明本出处! 本项目GitHub地址:https://github.com/totond/YMenuView 欢迎 Star or Fork! 效果总图: 前言 网上这种类似PathMenu的菜单很多,但是基
2017-08-18 10:00:53 2296
原创 目前最流行的运行时权限请求框架PermissionsDispatcher、RxPermissions和easypermissions的使用和对比
本文出处: 炎之铠csdn博客:http://blog.csdn.net/totond 炎之铠邮箱:yanzhikai_yjk@qq.com 本文demo地址:https://github.com/totond/PermissionsApplyDemo 本文原创,转载请注明本出处!前言 今天是2017年6月23日,到目前为止,Android6.0已经发布了两
2017-06-23 15:15:18 36150 11
原创 Android APP一键退出的方法总结分析
本文出处: 炎之铠csdn博客:http://blog.csdn.net/totond 炎之铠邮箱:yanzhikai_yjk@qq.com 本文demo地址:https://github.com/totond/TestAppExit 本文原创,转载请注明本出处!前言——到底APP需不要退出功能 Google是推荐APP不需要退出功能的,因为只要把APP切到后台,系统的G
2017-06-09 15:28:33 9813 4
原创 Android中Application类总结
本文出处: 炎之铠csdn博客:http://blog.csdn.net/totond 炎之铠邮箱:yanzhikai_yjk@qq.com 本文原创,转载请注明本出处!前言 最近的开发中经常使用到Application类,它的用处很多,但是网上的资料有很多是旧的或者是介绍不全的,在这里全面总结一下,先介绍Application的所有方法,再介绍它的使用经验。 本文基于An
2017-05-27 15:44:32 24148 7
原创 自定义进度条PictureProgressBar——从开发到开源发布全过程
出处: 炎之铠邮箱:yanzhikai_yjk@qq.com 本文原创,转载请注明本出处! 本项目JCenter地址:https://bintray.com/yanzhikaijky/CustomViewRepository/PictureProgressbar/ 本项目GitHub地址:https://github.com/totond/PictureProgressBar
2017-05-17 11:10:03 7073 4
原创 Android源码自带的ProgressBar的总结与扩展——自定义ProgressDialog
出处: 炎之铠邮箱:yanzhikai_yjk@qq.com 本文原创,转载请注明本出处!介绍对于进度条ProgressBar,在很多场景都会应用到它,最近项目要用到进度条,在网上搜了很多资料,发现Android源码自带的ProgressBar是一个好东西,只要有好看的UI图片,就可以通过ProgressBar的自定义样式来实现一些好看的进度条,并不一定要重写View来实现。学习网上很
2017-05-16 09:46:43 5721
原创 阿里开源库VLayout的使用笔记
VirtualLayout是阿里最近(2017.2)开源的一个用来辅助RecyclerView的LayoutManager扩展库,通过使用里面的LayoutHelper,我们可以轻松的使用一些比较复杂的布局,如:线性布局、Grid布局、固定布局、浮动布局、栏格布局、通栏布局、一拖N布局、一拖N布局、瀑布流布局。还可以组合使用这些布局。天猫APP里面的一些商品布局就是用到这个库。Demo 地址 使
2017-04-14 15:24:48 22212 10
原创 Android自定义View系列笔记收录
我写博客的意义是方便自己的同时分享给他人,欢迎批评指正。在这里把我学习的有关Android自定义View之后写的笔记和看过的文章收录一下,把自己学到的知识点总结一下。 PS:下面把学习过并在文章里面有讲解的知识点打✔,不了解和文章里没有讲解的知识点打✘,以后会继续学习了解这些打✘的知识点,并查缺补漏,随时修改这个目录。自定义View自定义属性(✔)重写View的onMeasure()和on
2017-03-07 09:17:49 1617
原创 Android自定义View笔记
自定义View的分类 自定义View的有好几种分类,以我目前的阅历我把它分成4种:特定的View的子类:Android的API已经为我们提供了不少可以使用的View,如TextView、ImageView、Button等等,但是有时候我们需要在这些基础的View上扩展一些功能,例如在Button里绑定一个TextWatch监测若干个EditText的输入情况时,就是继承Button类,在它的子类
2017-02-28 23:53:09 1969
原创 Android绘图Canvas笔记
Canvas的翻译是画布,Android系统里面的的2D绘图用的就是它。对应Canvas,官方的解释是这样的: The Canvas class holds the “draw” calls. To draw something, you need 4 basic components: A Bitmap to hold the pixels, a Canvas to host the draw
2017-02-28 23:45:38 4696 1
原创 Android动画(Android Animation)笔记
demo源码地址:https://github.com/totond/LearnAnimation Android里动画时非常常见的,几乎每个炫酷的自定义控件都涉及动画。Android里面的动画分为两类:属性动画(Property Animation)和视图动画(View Animation)。 其中Property Animation是Android3.0(API 11)之后才出现
2017-02-28 23:43:01 2876 1
原创 数据结构总结
前言 下面是我看了《大话数据结构》一书之后,做的笔记,引用了不少书中的话,和加上了一些自己的理解,这本书里面虽然不是同java写的,但是里面的举例说明很不错,边看书边上网查边敲代码,看完这本书,总算是对数据结构有一个比较全面的理解,到后面有机会的话会去深入的看一些算法的书的。链表与数组数组 即线性表的顺序存储结构,指的是用一段地址连续的存储单元一次存储线性表的数据元素。 - 优点:查取,修改
2016-11-21 17:36:15 3034 2
原创 Android端小米推送Demo解析和实现方法
前言 最近这几个月都是在准备找工作和找工作中,付出了很多,总算是有点收获,所以都没有怎么整理笔记。到了最近才有空把自己的笔记整理一下发上来,分享一下我的学习经验。推送 由于最近项目要用到Android的消息推送,关于Android推送的解决方案有很多种,有C2DM,轮询, SMS,MQTT协议,XMPP协议和第三方平台,经过我们对项目需求的考虑之后我们选择了第三方平台推送的小米推送,下面就是小米
2016-10-22 23:13:47 8485 7
原创 学习笔记——自定义Button,自带监听EditText是否空
前言 最近的项目很多地方都遇到这样的要求:要求页面里面所有的EditText都是有输入才能让一个button可以被按下,就像下图那样。这个功能实现起来会在Activity占比较多重复的代码,可重用性不高。所以,我把要重复用的东西拿出来,做成了一个自定义View。 原理 实现的思路大概就是:重写Button类,传入要监听的EditText数组,为每个EditText绑定自定义的TextWatch
2016-07-25 13:00:30 1331
原创 学习笔记——自定义EditText右侧带图片控件
前言 最近项目做用户登录模块需要一个右边带图片的EditText,图片可以设置点击效果,所以就查资料做了一个自定义EditText出来,方便以后复用。原理 下面是自定义EditText的代码,具体难点是要实现图片的点击监听,因为谷歌官方至今没有给出一个直接实现EditText里面图片的监听API。我的做法是整个控件绑定一个OnTouchListener,然后监测点击事件,检测点击位置的X坐标是否
2016-07-24 17:20:49 3413 1
原创 学习笔记:Dialog重用类
Dialog重用类 项目用到Dialog的弹出对话框来选择参数,要设置大量显示选择内容的Dialog,如下图,点击文字TextView之后可以弹出一堆选择项自定义的Dialog、一个一个地建立Dialog太麻烦,所以我想要写一个用于方便的可重用的建立Dialog弹出选择框的类。点击后可弹出Dialog: 未使用重用类时要这样一个一个地建立Dialog:public class ProudctPa
2016-07-16 02:20:03 817
原创 策略模式——为不同的客户推荐不同的策略
在小成的工厂扩大生产规模之后,产品的多样性也提高了,但是产能怎么分配是要根据需求的,小成的公司经过市场调研之后结合自己厂的生产情况制定了几个销售策略,现在小成公司的业务员和客户谈生意的时候都会根据不同的客户需求来提出不同的销售策略来满足客户,如果没有合适的就看情况能不能自定义一个销售策略,当工厂的生产情况改变的时候也可以适当地改变销售策略,就像现在的手机话费套餐,毕竟一切解析权都归商家嘛。这样实现的
2016-07-02 16:19:11 2604 1
原创 代理模式——公司的代言人
静态代理 随着业务规模的增大,为了方便管理两间工厂,小成和他的合伙人建立了一间公司,把一些不是很重要的生意交给手下业务员代表公司去和其他公司谈,如果业务员超常发挥,还可能为公司谈好一笔任务之外的生意。这样老板小成就可以轻松很多了,小成一有空就想写代码,一想这个不就是代理模式吗,然后就开始写下代码。介绍 在有些情况下,一个客户不想或者不能直接引用一个对象,此时可以通过一个代理来实现间接引用。就像我
2016-07-02 16:17:17 5756 4
原创 外观模式——设立办事处
经过一段时间的努力之后,小成的两间注塑厂生意终于走上正轨了,但是这样的代价就是要他每天都在两间距离并不算近的注塑厂之间跑来跑去,接到一个订单,跑到A厂去布置生产工作,又跑去B厂,生产完成了又要去布置配送任务,然后又接收的工作汇报,真的分身乏术。还好他的合伙人见他这么麻烦就给他在外面租了一间办公室当办事处,在这个办事处里管理两个厂的工作,等两个工厂的负责人来领工作和汇报工作完成情况就行了。 后来
2016-07-02 16:14:33 1736 1
原创 建造者模式——建立流水线
小成的注塑厂生产塑料产品时,往往是要经过一条生产流水线,才把原料加工成产品。小成一想,这不是很符合刚刚看到的建造者模式吗,于是他啪啪啪就写下代码。介绍 和工厂模式一样,建造者模式也是一种对象创建型模式,但是建造者模式则是侧重于保持一个对象创建过程的稳定性。建造者模式的定义是:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。有些对象会有一些重要的性质,有些性质甚至要按一定顺
2016-07-02 16:12:52 2223 1
原创 抽象工厂模式——发展新的产品方向
时光飞逝,小成的注塑厂在良好的经营管理之下获得了不错的经济效益,但是他们的厂之前都是只做塑料容器产品的生产,现在想发展新的产品方向,做塑料模具。小成想了想新学到的抽象工厂模式,也把代码给改了。介绍 抽象工厂模式可以说是工厂模式的一种扩展,提供一个创建一系列相关或相互依赖对象的接口,而无需制定它们具体的类。也就是说可以通过调用工厂类里面的不同方法来生产对应的不同的产品类。package scut.d
2016-07-02 16:10:11 1457 1
原创 工厂方法模式——办分厂
随着生产规模的发展壮大,小成的那一间小小的注塑厂承担了越来越多的生产任务,想要优化改革生产也变得很困难,然而订单需求越来越多,小成和他的合伙人就决定置办一间分厂,扩大了生产规模。置办了分厂之后,小成想着那么生产流程的代码实现也是时候改变了,刚刚在网上学习了简单工厂模式的升级版——工厂方法模式,他思考了一下,画了一下类图,然后就很快地写出了代码。工厂方法模式介绍 工厂方法模式就是简单工厂模式的升级版
2016-07-02 16:03:43 1409 1
原创 简单工厂模式——把生产方法封装起来
小成是一个刚毕业的大学生,在学校里面了解比较多注塑行业的知识,知道我们国家注塑行业一直保持高速发展的态势,需求比较大,加上自己也有创业的雄心壮志,所以毕业出来就和人合伙承包了一家塑料加工厂,做起塑料加工生意来了。 小成的注塑厂刚刚起步,推出了三款产品,作为一名程序猿,恰好学习到了简单工厂模式,小成就用代码展现了他的三款产品的生产流程:简单工厂模式介绍: 简单工厂模式,又称为静态工厂方法(St
2016-07-02 16:02:05 1968
原创 单例模式——仓库只有一个
未使用单例模式: 小成承包了塑料生产厂之后,由于生产规模有限,只有一个仓库,不过这样仓库的商品数量也比较容易管理。小成现在想用代码来实现仓库的管理,他先建立仓库类和工人类,仓库里面的quantity表示商品数量,工人有搬运方法MoveIn(int i)和MoveOut(int i)。 然后他通过测试发现,每次工人搬运操作都会新建一个仓库,就是货物都不是放在同一仓库,这是怎么回事呢?这是他的代
2016-07-02 15:58:49 1106 1
原创 设计模式笔记系列
备注: 这个系列的笔记是用java语言,在AndroidStudio上写的,分享在这里是为了方便记录和给大家一些经验(暂时还没写完,只写了一部分)。所有设计模式代码地址:https://github.com/totond/DesignModelAndroidstudio建立java工程方法:http://jingyan.baidu.com/article/3a2f7c2e6b2f4726afd61
2016-07-02 15:55:26 1447
原创 学习笔记——Retrofit2.0的简单使用
在Android开发中,我们肯定是会遇到网络请求的,由于网络请求操作是一个耗时操作,不能在UI线程里执行,而且实际开发网络请求还有很多问题要考虑,你需要自己管理线程切换,需要自己解析读取数据,解析数据成对象,切换回主线程,回调给上层。所以我们初学者一般是应用一些技术成熟的第三方框架来进行网络请求,像Volley、Okhttp、Retrofit等,下面我就用我的学习经历来简单介绍一下Retrofit2
2016-06-14 19:19:16 1542
原创 学习笔记:从ListView和Adapter到RecyclerView
ListView: 简单的说,ListView是能让数据集合以列表的形式表示到用户界面上的视图。Adapter: ListView和数据是分开的,不直接接触,Adapter是用来把数据映射到ListView上的中介。 为什么要用Adapter: 如果把所有数据集合的信息都加载到View上,数据量一多的话,肯定要占用非常多的内存。所以我们有了适配器,假如你的屏幕只能显示七个item。那么Lis
2016-05-17 23:19:47 5576
原创 学习笔记:Android里面的MVC模式与MVP模式
在一个项目开始之前,开发者就应该根据项目的大小和内容决定用什么设计模式和框架,选好一个合适的设计模式,可以使项目开发分工更明确,效率更高效,出错率更低,维护更容易。 在我看来,设计模式就是一种把一个项目的代码分成若干个小块,让每个小块的耦合性尽量地降低,让每个模块的代码可重用性增强,让项目的维护更简单的方法。下面我们来学习MVC模式和它的改进模式MVP模式,关于这两个模式我在网上看了很多资
2016-05-01 18:25:36 1276
原创 学习笔记:Java Protocol Buffer的使用和编码原理学习
一、protocolbuffer简介: protocol buffer 是 google 的一种数据交换的格式,它独立于语言,独立于平台。google 提供了三种语言的实现:java、c++ 和 python,每一种实现都包含了相应语言的编译器以及库文件。可以把它用于分布式应用之间的数据通信或者异构环境下的数据交换,还有用于数据存储。与json、xml的比较: 在我个人看来,与其说PB是像jso
2016-04-24 17:36:59 5958
原创 学习笔记:Android里JSON解析的几种方法
Android里JSON解析的几种方法一、解析方法: Android解析json有很多种方法,下面介绍三种方法:Android Studio自带org.json解析、Gson解析和Jackson解析。优缺点对比: Android自带的方法有点像xml的dom解析,遍历之后根据需要的key值去取数据,操作比较复杂,而且速度比较慢;Gson方法只需要建立一个对应json的javaBean类,就可以通过简
2016-04-06 18:44:04 7595 1
原创 学习笔记:XML与JSON的介绍与对比
XML与JSON的介绍与对比 随着移动互联网时代的到来,越来越多的App客户端都需要和网络服务器或者其他客户端进行数据传输和交互,承担App与网络来进行传输和存储数据的格式一般是XML或者JSON。所以我们很有必要了解一下JSON和XML一、XML介绍1.简介: Extensible Markup Language,可扩展标记语言,标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标
2016-04-02 23:43:29 956
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人