android 文字显示动画,利用Android中的TextView实现逐字显示动画

本文介绍了一种在Android中实现文字逐字显示动画的方法,通过自定义CTextView类,遍历字符串并为每个字符创建TextView,设置动画和间隔时间,从而达到逐字显示的效果。在Activity中调用CTextView的setText方法,传入文字、动画和间隔即可实现动画效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

Android的TextView只能设置整个TextView的动画,而不能设置每个文字的动画。即使是使用TextSwitcher,也很难实现我想要的效果。

所以选择自定义一个。大体思路是:继承ViewGroup,设置Text的时候,每个文字为一个TextView,每隔一个固定时间,启动每个TextView的动画。

定义一个CTextView,继承ViewGroup:

实现主要代码:

public class CTextView extends ViewGroup {

}

向外提供一个方法setText(String text, final Animation animation, int duration),text为要显示的字符串,animation为每个字符的动画,duration为字符动画的播放间隔。

该方法实现如下:

public void setText(String text, final Animation animation, int duration) {

int time = 0;

if(text != null && !text.isEmpty()) {

char[] characters = text.toCharArray();

for(char c : characters) {

final TextView t = new TextView(context);

//遍历传入的字符串的每个字符,生成一个TextView,并设置它的动画

t.setText(String.valueOf(c));

t.setTextSize(28);

Handler h = new Handler();

//每隔duration时间,播放下一个TextView的动画

h.postDelayed(new Runnable() {

@Override

public void run() {

addView(t);

t.setAnimation(animation);

}

}, time);

time += duration;

}

}

}

CTextView完整实现如下:

import android.content.Context;

import android.os.Handler;

import android.util.AttributeSet;<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值