Android实现文字逐字显示出来

先上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>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Android中实现在矩形框中输入文字显示剩余字数的功能

    虽然这两个功能都比较简单,但是在实际app开发中真的很常见,特别是显示字数或剩余字数这个功能 如下图: 要实现上面的功能,需要做到三点: 1.实现矩形框布局 思路就是矩形框作为整个布局的一个background,在drawable中创建一个shap.xml样式文件 <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/

  • Android实现在TextView文字过长时省略部分或滚动显示的方法

    本文实例讲述了Android实现在TextView文字过长时省略部分或滚动显示的方法.分享给大家供大家参考,具体如下: TextView中有个ellipsize属性,作用是当文字过长时,该控件该如何显示,解释如下: 1.android:ellipsize="start"-–省略号显示在开头 2.android:ellipsize="end"--省略号显示在结尾 3.android:ellipsize="middle"--省略号显示在中间 4.an

  • Android编程实现控件不同状态文字显示不同颜色的方法

    本文实例讲述了Android编程实现控件不同状态文字显示不同颜色的方法.分享给大家供大家参考,具体如下: 方式一: 第一要选择的控件 <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/close_time_display" android:layout_marginRight="20

  • Android 自定义控件实现显示文字的功能

    Android 自定义控件实现显示文字的功能 自定义控件-–逐个显示文字 ONE Goal ,ONE Passion ! 前言: 今天要实现的效果时.让我们的文字一个一个显示出来.上效果图吧: 实现原理: 1,拿到要显示的文字. 2,计算文字显示的速率 字体显示的速度 v = 总的字体长度 / 总的显示时间 3,将文字根据速率显示到控件上. 自定义View: public class printTextView extends TextView { /** * 字体显示出来的时间 */ priv

  • Android实现文字逐字显示出来

    先上Android实现文字逐字显示出来效果图,供大家参考,具体内容如下 可以采用自定义TextView的方式去实现,也可才用定时更新文字显示,思路是让TextView每隔一秒显示以一个字符串(并非每一秒多出来一个汉字),那么就简单了,可以开启一个线程,那么线程主要方法如下: public static void startTv(final int n) { new Thread( new Runnable() { @Override public void run() { try { final

  • Android实现文字滚动效果

    Android 实现文字滚动效果,自己写了个timer小计时器,textview文字上下翻动效果: public class AutoTextView extends TextSwitcher implements ViewSwitcher.ViewFactory { private float mHeight; private Context mContext; //mInUp,mOutUp分别构成向下翻页的进出动画 private Rotate3dAnimation mInUp; priva

  • Android实现文字和图片混排(文字环绕图片)效果

    本文实例讲述了Android实现文字和图片混排(文字环绕图片)效果.分享给大家供大家参考,具体如下: 在平时我们做项目中,或许有要对一张图片或者某一个东西进行文字和图片说明,这时候要求排版美观,所以会出现文字和图片混排的情况,如图: 这种情况就是上下两个文字说明是连续在一起的,这就要求我们计算上面的文字说明怎么和下面的文字说明连贯结合在一起呢,这就要求我们进行计算了,下面给出代码,代码中也有详细的注释,原理也很简单. 因为算是比较简单,直接就在activity中去计算了: package com

  • Android实现文字翻转动画的效果

    本文实现了Android程序文字翻转动画的小程序,具体代码如下: 先上效果图如下: 要求: 沿Y轴正方向看,数值减1时动画逆时针旋转,数值加1时动画顺时针旋转. 实现动画的具体细节见"RotateAnimation.Java".为方便查看动画旋转方向,可以将RotateAnimation.DEBUG值设置为true即可.
 RotateAnimation参考自APIDemos的Rotate3DAnimation
 RotateAnimation的构造函数需有三个参数,分别说明动画组件的

  • Android实现文字垂直滚动、纵向走马灯效果的实现方式汇总

    方法一.使用系统控件ViewFlipper方式: 布局文件: <ViewFlipper android:id="@+id/view_flipper" android:layout_width="300dp" android:layout_height="35dp" android:layout_centerInParent="true" android:autoStart="true" android

  • 浅谈Android textview文字对齐换行的问题

    今天忽然发现android项目中的文字排版参差不齐的情况非常严重,不得不想办法解决一下. 经过研究之后,终于找到了textview自动换行导致混乱的原因了----半角字符与全角字符混乱所致!一般情况下,我们输入的数字.字母以及英文标点都是半角,所以占位无法确定. 它们与汉字的占位大大的不同,由于这个原因,导致很多文字的排版都是参差不齐的. 对此我找到了两种办法可以解决这个问题: 1. 将textview中的字符全角化. 即将所有的数字.字母及标点全部转为全角字符,使它们与汉字同占两个字节,这样就

  • Android实现文字上下滚动效果

    关于Android实现文字上下滚动这个功能,我目前有两种方法实现: 一个是在TextView 中加上翻转的动画效果,然后设置循环滚动:一种是改写ViewPager 的滚动方向,使它从下到上进行滚动,并设置循环滚动: 首先介绍第一种方法: 实现思路:自定义TextView,在TextView中加上从下到上滚动的动画效果,然后设置循环播放: 创建一个AutoTextVieW使之继承TextView,然后在onDraw方法中调用getHeight()方法获取textview当前的高度. 在接下来的动画

  • Android实现文字下方加横线

    本文实例为大家分享了Android实现文字下方加横线的具体代码,供大家参考,具体内容如下 public class WhiteTextviewWithWhiteBottomLine extends LinearLayout { private Context mContext; public WhiteTextviewWithWhiteBottomLine(Context context) { this(context, null); } public WhiteTextviewWithWhit

  • Android实现文字滚动播放效果的代码

    在开发时,我们会遇到文字过长,TextView不能完全展示,但又不想文字换行展示,这样有时会影响美观.这时我们就需要文字滚动播放,让用户可以看到所有的文字. 话不多说,直接上代码: import android.content.Context; import android.util.AttributeSet; import android.widget.TextView; public class MarqueTextView extends TextView { public MarqueT

  • Android实现文字动态高亮读取进度效果

    本文实例为大家分享了Android实现文字动态高亮读取进度的具体代码,供大家参考,具体内容如下 1.效果图 类似歌词的效果.播放下面文字的音频,同时音频播放的进度和文字高亮进度保持一致. 2.代码结构和实现 简单的类图: ISubtitleView接口代码如下: /** * 简要功能描述 * <p> * <详细功能描述> * * @author : liuxs * @date : 2021/3/18 */ public interface ISubtitleView { /** *

随机推荐