Android(安卓)的跑马灯工具类
16lz
2022-04-03
package com.jxs.app.gridview.utils;import android.os.Handler;import android.os.Message;import android.widget.TextView;/** * * @Author Jiangxs * @Date 2011-7-21 上午12:06:24 * @Des 本类为跑马灯工具类 只要提供给一个要显示的字符串,一个TextView,就可以在这个TextView中实现跑马灯。 */public class Marquee {private final int TEXT_OUT = 4;private final int TEXT_IN = 5;private String titleStr;// 跑马灯字符串private int place = 1;// replace countprivate TextView titleTextView;public Marquee(String titleStr, TextView titleTextView) {this.titleStr = titleStr;this.titleTextView = titleTextView;}private Handler myHandler = new Handler() {@Overridepublic void handleMessage(Message msg) {// 重写的方法用于接收Handler消息super.handleMessage(msg);if (msg.what == TEXT_OUT) {// 跑马灯向外出来时titleTextView.setText(titleStr.substring(0, place));} else if (msg.what == TEXT_IN) {// 跑马灯向里进去时titleTextView.setText(titleStr.substring(place, titleStr.length()));}}};public void menuThread() {new Thread() {// 该线程用于标题栏跑马灯的实现public void run() {boolean control = true;while (true) {if (control) {// 出来时myHandler.sendEmptyMessage(TEXT_OUT);try {Thread.sleep(300);// 睡觉300毫秒} catch (Exception e) {// 捕获异常e.printStackTrace();// 打印异常}if (place >= titleStr.length()) {place = 1;control = false;} else {place++;}} else {// 进去myHandler.sendEmptyMessage(TEXT_IN);// 发送Handler消息try {Thread.sleep(200);// 睡觉300毫秒} catch (Exception e) {// 捕获异常e.printStackTrace();// 打印异常}if (place >= titleStr.length()) {place = 1;control = true;} else {place++;// 将place加一}}}}}.start();}}
更多相关文章
- InputStream与String/byte[]相互转换
- Android中对图像进行Base64编码
- Android(安卓)handler.obtainMessage()传字符串用法
- Android(安卓)DrawText字符串的绘制
- Android(安卓)加密解密字符串
- android 时间戳与日期格式的互相转换 以及 自定义选择器
- android: MapView加载多个 overlay 内存溢出
- android 时间戳与日期格式的互相转换 以及 自定义选择器
- Android中对图像进行Base64编码