Android Compose Transition 动画

Transition 是一种动画效果,用于在组件的状态之间进行平滑的过渡。它可以帮助我们在状态变化时,以一种流畅的方式更新 UI。通过使用 Compose 的 Transition API,您可以在应用中创建各种各样的动画效果,从而增强用户体验并提高应用的吸引力。


在 Compose 中推荐使用 updateTransition 来创建 Transition 动画,因为可以进行预览。

用法:

@Preview(showBackground = true)
@Composable
fun MyScreen() {var isVisible by remember { mutableStateOf(true) }val transition = updateTransition(targetState = isVisible, label = "kang")val colorAnimate by transition.animateColor(transitionSpec = { tween(300) }, label = "colorAnimate") {if (it) Color(0xFF03A9F4) else Color(0xFFFFEB3B)}val dpAnimate by transition.animateDp(transitionSpec = { tween(300) }, label = "dpAnimate") {if (it) 0.dp else 25.dp}val sizeAnimate by transition.animateSize(transitionSpec = { tween(300) }, label = "sizeAnimate") {if (it) Size(150f, 60f) else Size(270f, 50f)}Column(modifier = Modifier.fillMaxWidth().padding(16.dp),verticalArrangement = Arrangement.Center,horizontalAlignment = Alignment.CenterHorizontally) {Box(modifier = Modifier.size(sizeAnimate.width.dp, sizeAnimate.height.dp).background(colorAnimate, RoundedCornerShape(dpAnimate)).clickable(interactionSource = MutableInteractionSource(), indication = null) {isVisible = !isVisible}.padding(15.dp),contentAlignment = Alignment.Center) {Text(text = "Hello, wk灬丨!", color = Color.Gray)}}
}

代码直接贴上去之后点击 Split 就可以直接进行预览了:


在最新的 Android Studio 使用 updateTransition 可以进行 Compose 动画预览。点击:


之后出现的画面就是 compose 的动画预览页了,下面的进度条可以拖动进行动画预览


也可以展开动画预览它的曲线:

 虽然预览能够很清晰的看到具体的曲线和动画变换的过程,但是非常可以不能编辑,若能在如此详细的预览页能够编辑,那每一位开发制作动画都非常方便了(甚至有点视频剪辑的感觉)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/220769.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Axure元件库使用与ProcessOn流程图

Axure元件库 自定义Axure元件库: 打开Axure RP软件,并点击菜单栏中的“元件库”选项,选择“新建元件库”。 在弹出的对话框中,选择一个文件夹来保存您的自定义元件库,并给它一个名称。 在Axure RP的主界面上&#x…

四、Java流程控制

第一章 流程控制语句 在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的。所以,我们必须清楚每条语句的执行流程。而且,很多时候要通过控制语句的执行顺序来实现我们想要的功能。 1.1 流程控制语句分类 ​ 顺序结构 …

机器学习---逻辑回归算法

1、逻辑回归 逻辑回归又叫logistic回归分析,是一种广义的线性回归分析模型。线性回归要求因变量必须是连续性的数据变量,逻辑回归要求因变量必须是分类变量,可以是二分类或者多分类(多分类都可以归结到二分类问题),逻辑回归的输出…

深入理解 Go 语言 Goroutine 的工作原理

一、设计思路 1、设计描述 启动服务之时先初始化一个 Goroutine Pool 池,这个 Pool 维护了一个类似栈的 LIFO 队列,里面存放负责处理任务的 Worker然后在 client 端提交 task 到 Pool 中之后,在 Pool 内部,接收 task 之后的核心…

数据库数据恢复—Mysql数据库误删表数据的数据恢复案例

mysql数据库数据恢复环境: 本地服务器,windows server操作系统 ,部署有mysql单实例,数据库引擎类型为innodb,独立表空间,无数据库备份,未开启binlog。 mysql数据库故障: 工作人员使…

勒索病毒最新变种.mallox勒索病毒来袭,如何恢复受感染的数据?

导言: 威胁着我们数据安全的勒索病毒如.mallox已经变得愈发狡猾和具有挑战性。本文91数据恢复将深入介绍.mallox勒索病毒的特征、恢复受害数据的方法,以及一些预防措施,助您更好地应对这一威胁。 如果受感染的数据确实有恢复的价值与必要性&…

HarmonyOS应用开发初体验

9月25日华为秋季全场景新品发布会上,余承东宣布,全面启动鸿蒙原生应用,HarmonyOS NEXT开发者预览版将在2024年第一季度面向开发者开放。 最近鸿蒙开发可谓是火得一塌糊涂,各大培训平台都开设了鸿蒙开发课程。美团发布了鸿蒙高级工…

ZLMediaKit 编译以及测试(Centos 7.9 环境)

文章目录 一、前言二、编译器1、获取代码2、编译器2.1 编译器版本要求2.2 安装编译器 3、安装cmake4、依赖库4.1 依赖库列表4.2 安装依赖库4.2.1 安装libssl-dev和libsdl-dev4.2.2 安装 ffmpeg-devel依赖和ffmpeg依赖 三、构建和编译项目(启用WebRTC功能&#xff09…

JavaWeb笔记之MySQL数据库

#Author 流云 #Version 1.0 一、引言 1.1 现有的数据存储方式有哪些? Java程序存储数据(变量、对象、数组、集合),数据保存在内存中,属于瞬时状态存储。 文件(File)存储数据,保存…

电商类app如何进行软件测试?有必要进行第三方软件测试吗?

电商类app在开发过程中,软件测试是一个非常重要的环节。通过软件测试,可以确保app在发布和使用过程中的稳定性和安全性。那么,电商类app究竟如何进行软件测试?是否有必要进行第三方软件测试? 一、电商类app如何进行软件测试?   1. 内部…

武汉小程序开发全攻略:从创意到上线,10个必备步骤详解

在移动互联网快速发展的今天,武汉小程序开发成为越来越受关注的领域。作为专业从业者,我将为您详细解读武汉小程序开发的全攻略,从创意到上线的十个必备步骤,助您轻松掌握小程序开发的要点。 步骤一:明确小程序定位与…

python numpy 两种方法将相同shape的一维数组合并为二维数组

1 np.column_stack 最简单的一种方法 将多个一维数据按【列】合并为二维数组 import numpy as np# a b 都是一维数组 a np.array((1,2,3)) b np.array((2,3,4))# 变成二维 merge np.column_stack((a,b)) # array([[1, 2],[2, 3],[3, 4]])2 np.hstack 尽管该函数也是对【列…

FPGA乒乓操作详解,知道与FIFO的区别吗?

FPGA乒乓操作是一种高效的数据流控制处理技巧,它主要应用于需要快速且连续数据处理和缓冲的场合。乒乓操作的核心在于利用两个缓冲区交替存储数据流,从而实现数据的无缝实时传输和处理。 本文将详细介绍乒乓操作的基本原理、应用场景以及与FIFO的区别。…

超越GPT-4!谷歌AI大模型Gemini震撼发布

原创 | 文 BFT机器人 在Open AI风头正盛之际,谷歌大杀器终于上线! 当地时间12月6日,谷歌CEO桑达尔・皮查伊宣布正式推出其规模最大、功能最强大的新大型语言模型Gemini 1.0版。 据悉,Gemini 1.0是谷歌筹备了一年之久“对抗”GPT-…

python通过selenium获取输入框的文本值爬取编辑框内容

以百度首页的输入框为例,当输入‘你好‘后,html中的value的值会变成‘你好’ from selenium import webdriver web webdriver.Chrome() web.get(http://www.baidu.com) # 初始页面 cc web.find_element_by_xpath(//*[id"kw"]) #定位输入通过复制xpat…

Excel单元格隐藏如何取消?

Excel工作表中的有些单元格隐藏了数据,如何取消隐藏行列呢?今天分享几个方法给大家 方法一: 选中隐藏的区域,点击右键,选择【取消隐藏】就可以了 方法二: 如果工作表中有多个地方有隐藏的话,…

数据分析基础之《numpy(1)—介绍》

一、numpy介绍 1、numpy 数值计算库 num - numerical 数值化的 py - python 2、numpy是一个开源的python科学计算库,用于快速处理任意维度的数组 numpy支持常见的数组和矩阵操作。对于同样的数值计算任务,使用numpy比直接使用python要简洁的多 numpy使…

二、如何保证架构的质量、架构前期准备、技术填补与崩溃预防、系统重构

1、如何保证架构的质量 -- 稳定性和健壮性 2、正确的选择是良好的开端 -- 架构前期准备 ① 架构师分类:系统架构师、应用架构师、业务架构师 3、技术填补与崩溃预防 4、系统重构

Python创建代理IP池详细教程

一、问题背景 在进行网络爬虫或数据采集时,经常会遇到目标网站对频繁访问的IP进行封禁的情况,为了规避这种封禁,我们需要使用代理IP来隐藏真实IP地址,从而实现对目标网站的持续访问。 二、代理IP池的基本概念 代理IP池是一个包…

RLC防孤岛负载测试的操作和维护

孤岛现象是指当电网因故障或停电而与主电网断开连接时,某些部分仍然保持供电的现象。这种情况下,如果电力系统的保护设备不能及时检测到孤岛并切断供电,可能会导致严重的安全事故。因此,进行RLC防孤岛负载测试对于确保电力系统的安…