小松的技术博客

六和敬

若今生迷局深陷,射影含沙。便许你来世袖手天下,一幕繁华。 你可愿转身落座,掌间朱砂,共我温酒煮茶。

  1. 企业微信同事吧下拉刷新动画的实现分析

    不久前企业微信上线了同事吧的功能,其下拉刷新动画如上图图所示,这个控件对数学公式和技巧的运用是非常巧妙的,可能当你接触这个动画的时候会感到有点不知所措,但是当读完本文,了解到其背后的数学原理后,你会惊奇的发现:实现这个控件也是分分钟的事情嘛!数学之美就在于它将复杂的具体问题抽象出来,用一种优雅的方式表达出来。 动画Demo已经上传至我的Github。并且提供了ios版本和Android版本,本文将以android为例讲解 我们先分析下这个动画:它是四个不同颜色的小球,循环移动,每个小球移动所做…

    Android开发 继续阅读
  2. TextView文本高亮与点击行为完美封装

    对于一个社交性质的App,业务上少不了给一段文本加上@功能、话题功能,或者是评论上要高亮人名的需求。当然,Android为我们提供了ClickableSpan,用于解决TextView部分内容可点击的问题,但却附加了一堆的坑点: ClickableSpan 默认没有高亮行为,也不能添加背景颜色; ClickableSpan 必须配合 MovementMethod 使用 一旦使用 MovementMethod,TextView 必定消耗事件 当点击ClickableSpan时,Text…

    Android开发 继续阅读
  3. Android沉浸式状态栏必知必会

    Android状态栏默认是固定的黑底白字,这肯定是不被伟大的设计师所喜爱的,更有甚者,某些时候设计希望内容能够延时到状态栏底部(例如头部是大图的情况)。所幸的是随着Android版本的迭代,开发者对状态栏等控件有了更多的控制。Android一直在尝试引入新的Api来满足开发者的需求,但Api却一直不够完美,接口添加了很多,却都不够简单或者说完美,算上第三方厂商的特色行为,怎一个“乱”字了得 Android完美的沉浸式需要多个接口配合使用才能完成,我们需要去了解android各个版本引入的Api的…

    Android开发 继续阅读
  4. sock5代理学习与使用

    阳春三月,春暖花开,春节的颓废带来的长尾效应也该终结了。作为一个程序员,平时免不了跨越某墙去寻找优秀资源,利用公司的vpn或者自己买vpn总会有些限制,所以最好的是掌握其原理并玩转它。因此我好好的学习了下sock5代理的实现。学习途径很简单: 阅读sock5协议文档:http://www.faqs.org/rfcs/rfc1928.html 阅读开源实现:shadowsocks-go 一步一步实现一个简易的版本:shine(GO语言实现) 现在大多数浏览器或者应用程序都是支持sock5协…

    Go, 后端开发 继续阅读
  5. 玩转Android嵌套滚动

    在Android UI开发过程中,经常会遇到嵌套滚动的需求,所谓嵌套滚动,就是父view可以滚动的情况下子view也可以滚动,例如下拉刷新(PullToRefresh)。 在微信读书之前的版本中,书籍讨论圈有一个比较复杂的嵌套滚动的例子,我把它抽取出来作为今天讲解的例子: 这个例子的嵌套比较复杂,上方的header为书籍封面,下方是一个ViewPager+TabLayout组成的容器(下文简称VT容器),ViewPager中的三个item为三个列表,也是可以滚动的。业务需求是: VT容器可以滚动…

    Android开发 继续阅读