news 2026/5/25 18:59:44

Compose动画:手写一个‘烦恼碎纸机’

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Compose动画:手写一个‘烦恼碎纸机’

今天我们要做的,是一个**“烦恼碎纸机” **。

它的玩法很简单:你在屏幕上的便签里写下今天的烦恼(比如“改不完的 Bug”或者“不懂产品的 PM”),然后点击红色的“销毁”按钮。伴随着手机的震动和嗡嗡声,这张便签会被卷入底部的机器,瞬间化作无数碎片飘落。

1. 功能拆解

在写代码之前,我们先来拆解一下这个动画的原理。就像变魔术一样,很多酷炫的效果其实都是“视觉欺骗”。

我们要实现的“吞纸”效果,其实是由三层 UI 叠加而成的:

[ Layer 3: 碎纸机机身 ] <-- 最上层 (zIndex = 2) (这里有一个黑色的矩形入口,用来遮挡) -------------------------------- [ Layer 2: 纸张 (Paper) ] <-- 中间层 (zIndex = 1) (随着动画向下移动,穿过 Layer 3) -------------------------------- [ Layer 1: 背景 (Background) ] <-- 最底层 (zIndex = 0)

关键点在于zIndex。我们将碎纸机的机身盖在纸张上面。当纸张向下移动时,它实际上是滑到了机身图层的下方。但在用户看来,纸张就像是被卷进了机器肚子里。

至于那些飘落的碎纸屑,其实是在机身下方用Canvas绘制出来的粒子动画。


2.布局实现

首先,我们用 Compose 的Box布局来搭建这个布局。

@Composable fun ShredderScreen() { // 纸张的垂直偏移量,我们将通过改变它来驱动动画 val paperOffsetY = remember { Animatable(0f) } Box( modifier = Modifier .fillMaxSize() .background(Color(0xFF222222)) // 暗黑背景,更有沉浸感 ) { // 1. 纸张 (Paper) // 我们给它一个 zIndex = 1f PaperInput( offsetY = paperOffsetY.value, modifier = Modifi
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/15 23:40:52

Jetpack Compose 实战:如何优雅地封装全局弹窗

在开发 Compose 应用时&#xff0c;弹窗管理往往是一个让人头疼的问题。通常会把 Dialog 代码直接写在 UI 组件内部&#xff1a;Composable fun HomeScreen() {var showDialog by remember { mutableStateOf(false) }if (showDialog) {AlertDialog( ... )} }这种写法在简单的 D…

作者头像 李华
网站建设 2026/5/23 0:38:27

USB3.1传输速度为何达不到理论值?图解说明

USB3.1传输速度为何达不到理论值&#xff1f;工程师亲测揭秘你有没有遇到过这种情况&#xff1a;买了一根标着“USB3.1 Gen 2”的高速线&#xff0c;配上NVMe固态硬盘盒&#xff0c;信心满满地开始拷贝4K视频文件——结果任务管理器里的传输速度只显示400 MB/s&#xff0c;连宣…

作者头像 李华
网站建设 2026/5/13 23:54:20

如何通过ITIL运维管理软件打造高效运维体系?

在企业数字化转型加速的背景下&#xff0c;信息技术服务管理&#xff08;ITSM&#xff09;成为企业运营的核心环节。随着业务系统复杂度增加&#xff0c;传统的人工运维模式难以满足快速响应、流程规范和高效管理的需求。ITIL运维管理软件应运而生&#xff0c;通过标准化流程、…

作者头像 李华
网站建设 2026/5/23 3:15:59

USB转串口驱动安装步骤通俗解释

电脑没串口&#xff1f;一文搞懂USB转串口驱动安装与芯片选型 你有没有遇到过这种情况&#xff1a;手握一块开发板&#xff0c;连上USB线准备调试&#xff0c;打开设备管理器却发现“未知设备”或者根本找不到COM口&#xff1f;明明线插好了&#xff0c;灯也亮了&#xff0c;就…

作者头像 李华
网站建设 2026/5/19 19:55:29

大规模设备接入下的USB2.0主机优化策略

如何让USB2.0在连接32个设备时依然稳如磐石&#xff1f;你有没有遇到过这样的场景&#xff1a;一个工业网关上插满了条码枪、传感器、摄像头&#xff0c;系统却频繁卡顿、设备掉线&#xff1f;明明用的是标准USB接口&#xff0c;怎么一到多设备就“罢工”&#xff1f;问题很可能…

作者头像 李华