欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android开发实现自动切换文字TextSwitcher功能示例

程序员文章站 2022-05-15 15:23:48
本文实例讲述了android开发实现自动切换文字textswitcher功能。分享给大家供大家参考,具体如下: 介绍: 1.textswitcher是viewswich...

本文实例讲述了android开发实现自动切换文字textswitcher功能。分享给大家供大家参考,具体如下:

介绍:

1.textswitcher是viewswicher的一个子类,继承了viewswicher的所有方法

2.与viewswitcher的另一个子类类似,textswitcher也有

3.imageswitcher不同的是:textswitcher的viewfactory方法的 makeview() 必须放回一个textxiew组件.

具体效果:

Android开发实现自动切换文字TextSwitcher功能示例

放射思维:

如果将其和轮播图()结合 就可以实现带文字效果的轮播图。

这里先给出布局文件:

<?xml version="1.0" encoding="utf-8" ?>
<relativelayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:gravity="center_horizontal">
    <!--定义一个viewswitcher并且制定了文本切换时的动画效果-->
    <textswitcher
      android:id="@+id/textswitcher"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:inanimation="@android:anim/slide_in_left"
      android:outanimation="@android:anim/slide_out_right"
      android:onclick="next">
    </textswitcher>
</relativelayout>

关于文字定时切换的实现:

1.首先写一个next方法,再这个歌方法中调用父类的settext()方法 实现了文字的设定

2.再主线程中开设一个性的线程用于图片的切换 注意:线程中不能直接改变view,所以要发送小修再handler对象中改变布局内容(文字)

实现如下:

public class mainactivity extends activity {
  string[] string = new string[]{
      "我爱高数",
      "我爱概率论",
      "我爱计算机网络",
      "我爱操作系统"
  };
  textswitcher textswitcher;
  int curstr ;
  handler handler = new handler(){
    @override
    public void handlemessage(message msg) {
      next(null);
    }
  };
  @override
  protected void oncreate(bundle savedinstancestate) {
    super.oncreate(savedinstancestate);
    setcontentview(r.layout.activity_main);
    textswitcher = (textswitcher) findviewbyid(r.id.textswitcher);
    textswitcher.setfactory(new viewswitcher.viewfactory() {
      @override
      public view makeview() {
        textview textview = new textview(mainactivity.this);
        textview.settextsize(40);
        textview.settextcolor(color.red);
        return textview;
      }
    });
    new thread(){
      @override
      public void run() {
        while (true){
          message message = handler.obtainmessage();
          message.obj = 0;
          handler.sendmessage(message);
          try {
            sleep(1000);
          } catch (interruptedexception e) {
            e.printstacktrace();
          }
        }
      }
    }.start();
  }
  private void next(view scource){
    textswitcher.settext(string[curstr = ( curstr++ % string.length )]);
  }
}

更多关于android相关内容感兴趣的读者可查看本站专题:《android图形与图像处理技巧总结》、《android开发入门与进阶教程》、《android调试技巧与常见问题解决方法汇总》、《android基本组件用法总结》、《android视图view技巧总结》、《android布局layout技巧总结》及《android控件用法总结

希望本文所述对大家android程序设计有所帮助。