You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Kivy中为Label组件添加动画效果

Kivy Label动画实现方案

Kivy内置了Animation类,可以直接对Label的所有数值型属性(位置、透明度、字体大小、颜色等)做补间动画,以下是修改后的可运行代码,包含了多种常用动画效果示例,你可以根据需求调整参数:

import kivy
from kivy.app import App
from kivy.uix.label import Label
# 导入动画类
from kivy.animation import Animation

class MyApp(App):
    def build(self):
        lu = Label(
            text = "This is a label! Pls help me with Animation!",
            # 初始属性设置,方便观察动画效果
            font_size = 20,
            opacity = 0,  # 初始完全透明
            pos_hint = {"x": 0, "top": 0.5}  # 初始在屏幕左侧垂直居中位置
        )
        # 定义第一段动画:1.5秒内透明度变为1,x坐标移动到0.3,字体大小变为30,文字颜色变为红色
        anim = Animation(
            opacity=1,
            pos_hint={"x": 0.3, "top":0.5},
            font_size=30,
            color=(1,0,0,1),
            duration=1.5,
            t='in_out_quad'  # 动画缓动效果,可选linear、in_cubic等多种
        )
        # 拼接第二段动画:1秒内文字颜色变为蓝色
        anim += Animation(
            color=(0,0,1,1),
            duration=1
        )
        # 开启循环播放,不需要循环可以删除这行
        anim.repeat = True
        # 绑定到Label组件启动动画
        anim.start(lu)
        return lu

if __name__ == '__main__':
    MyApp().run()

常用调整说明

  • 动画属性:所有Label支持的数值类属性都可以作为动画目标参数,比如size、rotation(旋转角度)等
  • 缓动效果:修改t参数可以调整动画速度曲线,常用可选值包括linear(匀速)、in_elastic(弹性进入)、out_bounce(弹跳结束)等
  • 动画拼接:用+可以拼接多段动画,按顺序执行
  • 取消动画:调用Animation.cancel(lu)即可停止Label上正在运行的所有动画

内容的提问来源于stack exchange,提问作者Abeer Joshi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 13:06:04