【Rive】波动文字

1 前言

        本文将使用文本修改器(Text Modifiers)做文字动画,实现文字波动效果。

        按以下步骤可以创建一个 Modifier Group 和 Range。

        部分参数的释义如下。

  • Range: Modifier 作用的范围。
  • Falloff: Modifier 在最大值时的范围,Falloff 一般时 Range 的子集。
  • Offset: Range 的偏移。

        本节完整资源详见 → Android中使用Rive实现文字波动特效。

2 第一种波形

        1)Modifier 配置

        2)时间线

        将 Modifier 的 PostionY、Offset 参数添加到时间线中,如下。

        PositionY 对应的 4 帧的值分别为 100、-100、100、-100,4 帧的插值器都是 S 型;Offset 对应的 2 帧的值分别为 -0.4、1。

3 第二种波形

        1)Modifier 配置

        2)时间线

        将 Modifier Group 1 和 Modifier Group 2 的 Offset 参数添加到时间线中,如下。

        Modifier Group 1 的 Offset 对应的 4 帧的值分别为 0、1、-1、0,第 2 、3 两帧相隔 1 帧,第 2 帧的插值器是 Z 型;Modifier Group 2 的 Offset 对应的 4 帧的值分别为 -0.5、1、-1、-0.5,第 2 、3 两帧相隔 1 帧,第 2 帧的插值器是 Z 型。 

4 Android 中代码

        Rive 在 Android 中的环境配置详见 → Rive在Android上的简单应用。

        1)MainActivity

package com.zhyan8.waveText

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
    }
}

        2)layout_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.zhyan8.waveText.MainActivity"
    android:orientation="vertical"
    android:gravity="center">

    <app.rive.runtime.kotlin.RiveAnimationView
        android:layout_width="match_parent"
        android:layout_height="200dp"
        app:riveFit="COVER"
        app:riveResource="@raw/wave_text"
        app:riveArtboard="Artboard_1"/>

    <app.rive.runtime.kotlin.RiveAnimationView
        android:layout_width="match_parent"
        android:layout_height="200dp"
        android:layout_marginTop="20dp"
        app:riveFit="COVER"
        app:riveResource="@raw/wave_text"
        app:riveArtboard="Artboard_2"/>

</LinearLayout>

5 运行效果

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

《庐山派从入门到...》初见

《庐山派从入门到...》初见 庐山派简介立创庐山派资源网站 庐山派个人分享&#xff0c;主要内容放到视频中&#xff0c;视频主要流程截图在博客上&#xff0c;所使用链接和代码也会放到博客中方便提取。希望小伙伴给我的视频点个关注谢谢小伙伴们。 《庐山派从入门到...》初见 …

现代软件开发技术 | 第2章:SpringMVC基础

文章目录 📚Spring MVC的工作原理📚Spring MVC的工作环境📚基于注解的控制器📚表单标签库与数据绑定🐇表单标签库🐇数据绑定📚JSON数据交互🐇JSON数据结构🐇JSON数据转换📚Spring MVC的基本配置🐇静态资源配置🐇拦截器配置🐇文件上传配置📚Spring …

【JavaWeb后端学习笔记】Java上传文件到阿里云对象存储服务

阿里云对象存储 1、创建阿里云对象存储节点2、上传文件2.1 修改项目配置文件2.2 定义一个Properties类获取配置信息2.3 准备一个alioss工具类2.4 创建注册类&#xff0c;将AliOssUtil 注册成Bean2.5 使用AliOssUtil 工具类上传文件2.6 注意事项 使用阿里云对象存储服务分为以下…

大模型 LMDeploy 量化部署

1 模型部署 定义&#xff1a; 在软件工程中&#xff0c;部署通常指的是将开发完毕的软件投入使用的过程。在人工智能领域&#xff0c;模型部署是实现深度学习算法落地应用的关键步骤。简单来说&#xff0c;模型部署就是将训练好的深度学习模型在特定环境中运行的过程。 场景…

Github 2024-12-01 开源项目月报 Top20

根据Github Trendings的统计,本月(2024-12-01统计)共有20个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Python项目10TypeScript项目9Go项目2HTML项目1Shell项目1Jupyter Notebook项目1屏幕截图转代码应用 创建周期:114 天开发语言:TypeScript, Py…

调试玲珑应用

文章目录 一、在终端中使用 gdb 进行调试二、QtCreator 配置 以下教程以“构建工具”一节中提到的 linglong-builder-demo 项目为例。我们将项目放在 /path/to/project。参考教程操作时注意对路径进行替换。 由于玲珑应用运行在容器中&#xff0c;想要在宿主机上对其进行调试&…

Linux笔记-现场实施记录(找网口、挂载u盘)

2024-10-08 在项目现场&#xff0c;进行实施&#xff0c;在此记录下&#xff0c;方便以后查阅。记录2个点&#xff1b; 找网口 服务器开机后查下ifconfig。 看下网卡配的标识如eth0 再使用如下命令 ethtool -p eth0 30 此时物理网口会闪烁&#xff0c;此时再看下是哪一个…

C# (WinForms) 使用 iTextSharp 库将图片转换为 PDF

iTextSharp简介 iTextSharp 是一个开源的 .NET 库&#xff0c;主要用于创建和操作 PDF 文档。它是 iText 的 .NET 版本&#xff0c;iText 是一个广泛使用的 Java 库。iTextSharp 继承了 iText 的核心功能并进行了适应 .NET 平台的调整。 iTextSharp 的主要功能包括&#xff1a…

2020 年“泰迪杯”数据分析职业技能大赛A 题教育平台的线上课程智能推荐策略

2020 年“泰迪杯”数据分析职业技能大赛A 题教育平台的线上课程智能推荐策略 完整代码请私聊 博主 一、 背景 近年来&#xff0c;随着互联网与通信技术的高速发展&#xff0c;学习资源的建设与共享呈现出新的发展趋势&#xff0c;各种网课、慕课、直播课等层出不穷&#xff0c…

QT 中基于 TCP 的网络通信

基础 基于 TCP 的套接字通信需要用到两个类&#xff1a; 1&#xff09;QTcpServer&#xff1a;服务器类&#xff0c;用于监听客户端连接以及和客户端建立连接。 2&#xff09;QTcpSocket&#xff1a;通信的套接字类&#xff0c;客户端、服务器端都需要使用。 这两个套接字通信类…

企业级日志分析系统ELK之ELK概述

ELK 概述 ELK 介绍 什么是 ELK 早期IT架构中的系统和应用的日志分散在不同的主机和文件&#xff0c;如果应用出现问题&#xff0c;开发和运维人员想排 查原因&#xff0c;就要先找到相应的主机上的日志文件再进行查找和分析&#xff0c;所以非常不方便&#xff0c;而且还涉及…

SpringBoot教程(十四) SpringBoot之集成Redis

SpringBoot教程&#xff08;十四&#xff09; | SpringBoot之集成Redis 一、Redis集成简介二、集成步骤 2.1 添加依赖2.2 添加配置2.3 项目中使用之简单使用 &#xff08;举例讲解&#xff09;2.4 项目中使用之工具类封装 &#xff08;正式用这个&#xff09;2.5 序列化 &…

【Transformer序列预测】Pytorch中构建Transformer对序列进行预测源代码

Python&#xff0c;Pytorch中构建Transformer进行序列预测源程序。包含所有的源代码和数据&#xff0c;程序能够一键运行。此程序是完整的Transformer&#xff0c;即使用了Encoder、Decoder和Embedding所有模块。源程序是用jupyterLab所写&#xff0c;建议分块运行。也整理了.p…

基于LLM智能问答系统【阿里云:天池比赛】

流程&#xff1a; 1、分别识别问题及提供的资料文件中的公司名实体&#xff0c;有公司名的走语义检索&#xff0c;无公司名的走结构化召回 2、结构化召回&#xff1a;Qwen根据问题生成sql&#xff0c;执行sql获取结果数值&#xff0c;把结果数值与问题给到Qwen生成最终结果 …

商品期权开户条件是什么?

商品期权开户条件是什么&#xff1f; 商品期权是一种金融衍生品&#xff0c;它赋予期权持有者在特定日期&#xff08;欧式期权&#xff09;或在特定日期之前&#xff08;美式期权&#xff09;&#xff0c;以特定价格&#xff08;行权价格&#xff09;买入或卖出一定数量的某种…

大文件分块上传后端服务器

一、背景&#xff1a; 后台系统需要上传大文件、大视频等数据&#xff0c;耗时过长&#xff0c;接口等待超时&#xff0c;故需优化通过前端多线程分片方式进行文件上传&#xff0c;显著提升上传速度。 二、流程&#xff1a; 前端逻辑&#xff1a; 前端使用分片技术&#xff…

docker部署seata

1.准备数据库表 Seata支持多种存储模式&#xff0c;但考虑到持久化的需要&#xff0c;我们一般选择基于数据库存储。 先准备seata-tc.sql脚本&#xff0c;在你的数据库中运行&#xff0c;内容复制粘贴即可。 CREATE DATABASE IF NOT EXISTS seata; USE seata;CREATE TABLE I…

java+ssm+mysql美妆论坛

项目介绍&#xff1a; 使用javassmmysql开发的美妆论坛&#xff0c;系统包含超级管理员&#xff0c;系统管理员、用户角色&#xff0c;功能如下&#xff1a; 用户&#xff1a;主要是前台功能使用&#xff0c;包括注册、登录&#xff1b;查看论坛板块和板块下帖子&#xff1b;…

Openlayers基础知识回顾(五)

1、GeoJSON数据的加载 GeoJSON是一种基于JSON的地理空间数据交换格式&#xff0c;它定义了几种类型JSON对象以及它们组合在一起的方法&#xff0c;以表示有关地理要素、属性和它们的空间范围的数据 2、GeoJSON转化为ol要素 new ol.format.GeoJSON().readFeatures() 一、canv…

使用 ASP.NET Core HttpLoggingMiddleware 记录 http 请求/响应

我们发布了一个应用程序&#xff0c;该应用程序运行在一个相当隐蔽的 WAF 后面。他们向我们保证&#xff0c;他们的产品不会以任何方式干扰我们的应用程序。这是错误的。他们删除了我们几乎所有的“自定义”标头。为了“证明”这一点&#xff0c;我构建了一个中间件&#xff0c…