Android TextView 实现跑马灯的效果很简单,只要加三个属性就可以了。

  • android:ellipsize="marquee"
  • android:focusable="true"
  • android:focusableInTouchMode="true"

上面的代码简单实用,但仅限于当前页面只有一个跑马灯的TextView 的实现。如果页面有两个或者是更多的跑马灯效果的时候,下面的就不会在动了。

找了一下原因,是因为要实现跑马灯的效果,TextView 必须要得到焦点。当一个页面有许多跑马灯的时候,默认的第一个TextView已经把焦点占据了。

因此别的跑马灯也就无法获取焦点了。

要想一个页面上同时实现多个跑马灯效果怎么办呢?其实也很简单。

  1. 写一个类继承TextView
  2. 重写里面的isFocused ()方法(直接返回true)
  3. 调用自己写的TextView控件

我们把所以的TextView创建时都强制获取焦点。

这里只粘贴一下,自定义的类和调用的代码(调用的时候从包名开始引用),其余的地方都是一样的。

<com.example.demo.MyTextView
android:id="@+id/textView1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:singleLine="true"
android:textSize="20sp"
android:textColor="#0ff0f0"
android:ellipsize="marquee"
android:focusable="true"
android:focusableInTouchMode="true"
android:text="你是什么1???你是什么2???你是什么3???你是什么4???你是什么5???" /> <com.example.demo.MyTextView
android:id="@+id/textView2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:singleLine="true"
android:textSize="20sp"
android:textColor="#000fff"
android:ellipsize="marquee"
android:focusable="true"
android:focusableInTouchMode="true"
android:text="我是跑马灯1。。。我是跑马灯2。。。我是跑马灯3。。。我是跑马灯4。。。我是跑马灯5。。。" />
 package com.example.demo;

 import android.content.Context;
import android.util.AttributeSet;
import android.view.ViewDebug.ExportedProperty;
import android.widget.TextView; public class MyTextView extends TextView { public MyTextView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
// TODO Auto-generated constructor stub
} public MyTextView(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
} public MyTextView(Context context) {
super(context);
// TODO Auto-generated constructor stub
} @Override
@ExportedProperty(category = "focus")
public boolean isFocused() {
// TODO Auto-generated method stub
return true;
}
}

Android 实现多行文本跑马灯效果的更多相关文章

  1. Android开发之TextView实现跑马灯效果

    TextView及其子类,当字符内容太长显示不下时可以省略号代替未显示的字符:省略号可以在显示区域的起始,中间,结束位置,或者以跑马灯的方式显示文字(textview的状态为被选中). 其实现只需在x ...

  2. Android TextView 横向滚动(跑马灯效果)

    Android TextView 中当文字比較多时希望它横向滚动显示,以下是一种亲測可行的方法. 效果图: 1.自己定义TextView,重写isFocused()方法返回true,让自己定义Text ...

  3. Android app widget中实现跑马灯效果(非widget部件也实用)

    原文地址:http://blog.csdn.net/luoyebuguigen/article/details/37533631 关键是需要在TextView中嵌入requestForcus标签才会有 ...

  4. Android textView点击滚动(跑马灯)效果

    布局文件: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:to ...

  5. Android 文字自动滚动(跑马灯)效果的两种实现方法[特别好使]

    有时候在xml中写的跑马灯效果不滚动:原因有以下 Android系统中TextView实现跑马灯效果,必须具备以下几个条件: 1.android:ellipsize=”marquee” 2.TextV ...

  6. Android学习总结——TextView跑马灯效果

    Android系统中TextView实现跑马灯效果,必须具备以下几个条件: 1.android:ellipsize="marquee" 2.TextView必须单行显示,即内容必须 ...

  7. TextView标签的属性和跑马灯效果

    text:显示的内容 textSize:文本的大小 textColor:文本的颜色 visibility:可见性  默认可见,invisible:表示不可见,但对控件的显示区域做了保留 gone:隐藏 ...

  8. android中实现跑马灯效果以及AutoCompleteTestView与MultiAutoCompleteTextView的学习

    跑马灯效果 1.用过属性的方式实现跑马灯效果 属性:                  android:singleLine="true" 这个属性是设置TextView文本中文字 ...

  9. android:ellipsize实现跑马灯效果总结(转)

      最近无意间看到了涉及到跑马灯效果的代码,于是在网上查阅了很多资料,在这里对自己看的一些文章进行一下总结,顺便加上自己的一些体会. 让我们一步步逐渐向下. 首先我们要实现走马灯这样一个效果,通常来说 ...

随机推荐

  1. Web Form 取消手机端自动转换

    将项目中的Site.Mobile.Master排除重新发布即可

  2. Notification NotificationManager RemoteViews PendingIntent

    Notification和NotificationManager :可以用来实现可视化的消息通知等,比如:下载进度显示,消息显示,广播的内容等 RemoteViews :用于创建自定义的Notific ...

  3. hadoop map-red的执行过程

    hadoop的 map-red就是一个并行计算平台,我们在使用这个平台的时候,要做的事情就是提交自己定制的任务(job,主要定制map类,reduce类,combine类等类),然后设置job的各种参 ...

  4. unity中全屏背景图缩放

    using UnityEngine; using System.Collections; public class BgPicScript : MonoBehaviour { // Use this ...

  5. Kubuntu 使用YaH3C进行中大校园网认证

    之前都是用路由器连网线上网,我也没注意到inode校园网客户端在linux上的问题.直到前两天把路由器给搞残废了,只能默默的找办法装inode.根据学校网络中心给的教程,在kubuntu上尝试安装in ...

  6. Kafka实战系列--Kafka的安装/配置

    *) 安装和测试 cd /path/to/server#) 下载kafka二进制包wget http://apache.fayea.com/apache-mirror/kafka/0.8.1.1/ka ...

  7. asp.net 页面的Meta元素

    <meta charset="utf-8" />    <meta name="viewport" content="initial ...

  8. Java初学者入门应该掌握的30个概念

    1.OOP中唯一关系的是对象的接口是什么,就像计算机的销售商她不管电源内部结构 是怎样的,他只关系能否给你提供电就行了,也就是只要知道can or not而不是how and why.所有的程序是由一 ...

  9. 在HTML标签<a/>中调用javascript代码

    <a/>标签的“href”属性可以是一个有效的URL,表示跳转的目的地,除此之外,href还可以是一段javascript代码.当为“href”设置javascript代码时,格式如下:& ...

  10. Docker之功能汇总

    Docker-给容器做端口映射 基本的命令是 -P(大写) :Docker 会随机映射一个 49000~49900 的端口到内部容器开放的网络端口基本的命令是 -p(小写) :Docker则可以指定要 ...