• 领略千变万化的Android Drawable (一)

    Posted by : lon.y@qq.com on 2017年7月4日

    Android Drawable 相信大家都不陌生,本篇我们就来全面深入了解它,Drawable是一种可以在Canvas上进行绘制的抽象的图像,它的子类也相当多,所以在开发中很容易导致我们对不同Drawable的理解产生混乱,因此我们很有必要来全面了解一下Drawable的子类及其使用方式滴,哈~。 一、Drawable的简述 Drawable在我们开发中常被用来作为View的背景图像,一般情况下我们都是通过XML来定义Drawable的,当然我们也可以通

    阅读全文...

  • 贝塞尔曲线开发的艺术

    Posted by : lon.y@qq.com on 2017年7月4日

    贝塞尔曲线开发的艺术 一句话概括贝塞尔曲线:将任意一条曲线转化为精确的数学公式。 很多绘图工具中的钢笔工具,就是典型的贝塞尔曲线的应用,这里的一个网站可以在线模拟钢笔工具的使用: http://bezier.method.ac/ 贝塞尔曲线中有一些比较关键的名词,解释如下: 数据点:通常指一条路径的起始点和终止点 控制点:控制点决定了一条路径的弯曲轨迹,根据控制点的个数,贝塞尔曲线被分为一阶贝塞尔曲线(0个控制点)、二阶贝塞尔曲线(1个控制点)、三阶贝塞尔

    阅读全文...

  • Linux 系统调用(syscall)原理

    Posted by : lon.y@qq.com on 2017年7月4日

    引言:分析Android源码的过程中,要想从上至下完全明白一行代码,往往涉及app、framework、native一直到kernel,可能迷失到代码世界,明白了系统调用原理,或许能帮你峰回路转,找到进入kernel函数的入口。本文主要讲解ARM架构相关源码: /bionic/libc/kernel/uapi/asm-arm/asm/unistd.h /bionic/libc/arch-arm/syscalls/kill.S /kernel/arch/ar

    阅读全文...

  • RecyclerView 实现滑动删除和拖拽功能

    Posted by : lon.y@qq.com on 2017年7月4日

    前言 从Android 5.0开始,谷歌推出了新的控件RecyclerView,相对于早它之前的ListView,优点多多,功能强大,也给我们的开发着提供了极大的便利,今天自己学习一下RecyclerView轻松实现滑动删除及拖拽的效果,如下图。 相信研究过RecyclerView的同学,应该很清楚该怎么实现这样的效果,若是用ListView,这样的效果实现起来可能就有点麻烦,但是在强大的RecyclerView面前这样的的效果只需很少的代码,因为谷歌给我

    阅读全文...

  • Android 自定义 View 之圆形进度条总结

    Posted by : lon.y@qq.com on 2017年7月4日

    最近撸了一个圆形进度条的开源项目,算是第一次完完整整的使用自定义 View 。在此对项目开发思路做个小结,欢迎大家 Star 和 Fork 该项目总共实现了三种圆形进度条效果 CircleProgress:圆形进度条,可以实现仿 QQ 健康计步器的效果,支持配置进度条背景色、宽度、起始角度,支持进度条渐变 DialProgress:类似 CircleProgress,但是支持刻度 WaveProgress:实现了水波纹效果的圆形进度条,不支持渐变和起始角度

    阅读全文...

  • 斯人已去长风存,谈谈 CyanogenMod 的前身今世

    Posted by : lon.y@qq.com on 2017年7月4日

    2016年年底,知名的第三方安卓定制ROM——CyanogenMod正式与我们说再见,标志着伴随着一代代搞机人的CyanogenMod从固件回归到了用于技术交流的开发者社区。 正当我们唱着“啊~朋友再见吧~再见吧~再见吧~”挥手告别时,一位熟悉但陌生的面孔又迎面走来,那就是由CyanogenMod之父Steve Kondik等原有核心团队成员打造的Lineage OS,是什么让CM几经沉浮到今时今日的改头换面呢,来跟小编一起回顾一下吧。 前身:原始时代的当

    阅读全文...

  • 网络框架分析 – 全是套路

    Posted by : lon.y@qq.com on 2017年7月4日

    前言 这几天抽时间啃完了Volley和Picasso的源码,收获颇多,所以在这里跟大家分享一下。 对于网络请求框架或者图片加载框架来说,我们的理想型大体应该是这样的: 简单:框架的出现当然是为了提升我们的开发效率,使我们的开发变得简单,所以在保证质量的情况下简单是第一位的 可配置:天底下没有完全相同的两片树叶,也没有完全相同的两个项目,所以某些差异应该是可配置的,比如缓存位置、缓存大小、缓存策略等等 方便扩展:框架在设计的时候就要考虑到变化,并且封装起来。

    阅读全文...

  • ListView中的观察者模式

    Posted by : lon.y@qq.com on 2017年7月4日

    虽然现在RecyclerView很好用,也在逐渐替代ListView。很多github的开源大神也在对其进行更加实用的封装。我现在写的一个音乐播放器也在使用RecyclerView。但是这些都不阻碍我们学习ListView优秀的源码设计。 播放器我想要写的精美,但现在越写越多bug,这也应该是我离开大学校园,实习前的最后一个小作品了,接下来的半年多的时间要冲刺复习咯。 进入正题,我用的是Api-23的源码。接下来就从源码的角度带你学习ListView中的观

    阅读全文...

  • Android 自定义View UC下拉刷新效果(二)

    Posted by : lon.y@qq.com on 2017年7月4日

    啦啦啦,这是山寨UC浏览器的下拉刷新效果的第二篇,第一篇请移步Android 自定义View UC下拉刷新效果(一) 我们看图说话: pull_refresh2.gif 主要工作 1.下拉刷新的圆形向回首页的圆形的过度以及返回的效果。 2.View的事件分发等等。 3.相关接口回调。 对于第一块,就是这个切换是的效果,其实在Android drawPath实现QQ拖拽泡泡我的第一篇文章中就讲了,主要就是使用贝塞尔曲线来实现的。 只是这里我试着使用了四阶的贝

    阅读全文...