Android实现文字逐字显示出来
程序员文章站
2024-02-10 12:38:34
先上android实现文字逐字显示出来效果图,供大家参考,具体内容如下
可以采用自定义textview的方式去实现,也可才用定时更新文字显示,思路是让textview...
先上android实现文字逐字显示出来效果图,供大家参考,具体内容如下
可以采用自定义textview的方式去实现,也可才用定时更新文字显示,思路是让textview每隔一秒显示以一个字符串(并非每一秒多出来一个汉字),那么就简单了,可以开启一个线程,那么线程主要方法如下:
public static void starttv(final int n) { new thread( new runnable() { @override public void run() { try { final string stv = s.substring(0, n);//截取要填充的字符串 tv.post(new runnable() { @override public void run() { tv.settext(stv); } }); thread.sleep(time);//休息片刻 nn = n + 1;//n+1;多截取一个 if (nn <= length) {//如果还有汉字,那么继续开启线程,相当于递归的感觉 starttv(nn); } } catch (interruptedexception e) { e.printstacktrace(); } } } ).start(); }
完整代码如下:
1.activity
public class tiaoziactivity extends activity { private textview textview; private string s = "天生我才必有用,千金散盡還福來--李白\n你挑著但,我騎著馬--唐僧\n年后打蓝思科技卡死了减肥的 kjdsfkjsjkdsfj kjdflskjklfjsljdflsjkldfjsljdflsjdfkl";; private tiaoziutil tiaoziutil; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_tiaozi); textview = ((textview) findviewbyid(r.id.tv_text)); tiaoziutil = new tiaoziutil(textview, s, 100);//调用构造方法,直接开启 } @override protected void ondestroy() { super.ondestroy(); } }
2.工具类
public class tiaoziutil { private static textview tv; private static string s; private static int length; private static long time; static int n = 0; private static int nn; public tiaoziutil(textview tv, string s, long time) { this.tv = tv;//textview this.s = s;//字符串 this.time = time;//间隔时间 this.length = s.length(); starttv(n);//开启线程 } public static void starttv(final int n) { new thread( new runnable() { @override public void run() { try { final string stv = s.substring(0, n);//截取要填充的字符串 tv.post(new runnable() { @override public void run() { tv.settext(stv); } }); thread.sleep(time);//休息片刻 nn = n + 1;//n+1;多截取一个 if (nn <= length) {//如果还有汉字,那么继续开启线程,相当于递归的感觉 starttv(nn); } } catch (interruptedexception e) { e.printstacktrace(); } } } ).start(); } }
3.布局文件
<?xml version="1.0" encoding="utf-8"?> <linearlayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <textview android:id="@+id/tv_text" android:layout_width="match_parent" android:layout_height="200dp" /> <textview android:id="@+id/mytext" android:layout_width="match_parent" android:layout_height="200dp" /> </linearlayout>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
上一篇: 微信小程序通过js实现瀑布流布局详解
下一篇: 原生js实现旋转木马轮播图效果