Flutter 只知道 Future 还不够,你还需要 Completer Nov 18, 2020 flutter Completer 是创建 Future 的一种方式,它内部创建一个 Future ,并允许你在一段时间后主动完成它。一般如果你的异步操作是带回调的不能即时返回结果的类型,你需要用到 Completer。
[深入学习Flutter] ImageProvider工作流程和AssetImage 的自动分辨率适配原理 Nov 17, 2020 flutter 源码 ImageProvider工作流程和AssetImage 的自动分辨率适配原理
[Android] 做了一个星空背景的动态 Drawable - StarrySky Dec 5, 2019 android drawable 星空动画 新项目需要做一个星空背景,顺便说下怎么做一个动态 Drawable 先看最终效果图: 我们的目标是一个叫 StarrySky 的 动态Drawable, 用法像这样: imageView.setImageDrawable(starrySky) // or imageView.background = starrySky starrySky.start() 所以基础结构就是 class StarrySky: Drawable(), Animatable { /// xxx override
[Android] 写了个视差滚动布局 ParallaxLayout Dec 4, 2019 android 视差滚动 ParallaxLayout 新项目用到了大量的视差滚动效果,今天写了控件做支持,并非成熟但适用大多数简单场景,把大致思路在这里写下。 什么是视差滚动, 简单说就是 不同组件按不同速度滚动 像这种效果: 我们今天介绍的主要是以纵向的滚动效果为主,当然如果你要实现横向思路也一样。 1. 思路 简单实现这个效果思路很简单,只需要监听滚动控件的滚动行为,再根据不同组件的速度要求调整偏移量就🉑️了。 要做的通用点,我的思路是实现一个视差滚动的父控件,子view添加一个layout_parallax_speed的属性,这样无需多写java代码,就可以得到所需要的参数,在布局代码中就可以完成定义。 最后的调用类似这种效果: