首先给TextView添加一个单行限制:
android:singleLine="true"

- 解决方案一
更改TextView的一个属性:
android:ellipsize="marquee"
即省略多余部分的意思,包括去掉省略号(然而我在Android 6上面并没有省略省略号)。

然而,该有的东西都被省略了。不满意。

- 解决方案二
在方案一的基础上。添加如下两个属性:
android:focusable="true" android:focusableInTouchMode="true"
这样可以实现当行的循环跑马灯。

然而,如果同时有两个类似的TextView出现时,会发现只有一个有跑马灯的效果,另一个则失效,因此该功能也是不够的。

- 解决方案三
在之前两个方案的基础上,自己对TextView进行改写。
1.先新建一个类,比如MarqueeText.java ,且这个类继承了TextView。
只会我们对这个类进行如下的改写,添加所需的几个构造函数。
2.要对isFocused()进行重写,使返回值都为true。
这是因为,之前的TextView控件在使用时,第一个标签默认获取的了焦点,而之后的TextView则失去了焦点,因而不能实现跑马灯效果。
3.如果想要一直循环的话,应该加上android:marqueeRepeatLimit="marquee_forever"。否则循环两次。
之后layout中,可以直接使用包名作为新的标签,如 ,直接可实现跑马灯效果。

public class MarqueeText extends TextView { public MarqueeText(Context context) { super(context); } public MarqueeText(Context context, AttributeSet attrs) { super(context, attrs); } public MarqueeText(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } @Override public boolean isFocused() { return true; } }

- 总结

  1. 更改TextView的一个属性:
    android:ellipsize="marquee"
  2. 添加如下两个属性:
    android:focusable="true"
    android:focusableInTouchMode="true"
    3.新建一个类继承了TextView的类,并重写isFocused()使默认返回true。
    4.加上android:marqueeRepeatLimit="marquee_forever"可以一直循环,否则默认循环两次。

7——使用TextView实现跑马灯的更多相关文章

  1. Android 高级UI设计笔记05:使用TextView实现跑马灯的效果

    1. 使用TextView属性实现跑马灯的效果: (1). 新建一个Android工程,命名为"MarqueeTextViewDemo",如下: (2). 来到activity_m ...

  2. android使用TextView实现跑马灯的效果(1)

    android使用TextView实现跑马灯的效果 1.activity_main.xml <?xml version="1.0" encoding="utf-8& ...

  3. Android界面(1) 使用TextView实现跑马灯效果

    方法一:(只能实现单个TextView的跑马灯效果)在TextView添加以下控件 android:singleLine="true"只能单行,超出的文字显示为"...& ...

  4. TextView的跑马灯效果实现

    TextView的跑马灯效果实现 问题描述 当文字内容过长,但是只允许显示一行时,可以将文字显示为跑马灯效果,即文字滚动显示. 代码实现 第一种方法实现 先查询TextView控件的属性,得到以下信息 ...

  5. Android TextView实现跑马灯

    TextView实现跑马灯的效果:例子一: 这个例子可以解决给一个TextView实现跑马灯的效果,但是不能解决给所有的TextView实现跑马灯的效果. <TextView android:l ...

  6. ListView 中的TextView实现跑马灯效果

    案例:怎么样在一个ListView中含有TextView的item中实现字母滚动呢.这个在一些特定的场合经常用得到.如下图,当焦点位于某个item的时候其内容就自动滚动显示 要实现这样的效果,废话不多 ...

  7. TextView的跑马灯效果(AS开发实战第二章学习笔记)

    TextView的跑马灯效果跑马灯用到的属性与方法说明singleLine 指定文本是否单行显示ellipsize 指定文本超出范围后的省略方式focusable 指定是否获得焦点,跑马灯效果要求设置 ...

  8. Android使用TextView实现跑马灯效果(自定义控件)

    对于一个长的TetxView 折行显示是一个很好的办法,另一种方法就是跑马灯显示(单行滚动) 1.折行显示的长TextView <LinearLayout xmlns:android=" ...

  9. Android:TextView文字跑马灯的效果实现

    解决TextView文字显示不全的问题. 简单设置跑马灯的效果: <TextView android:id="@+id/textView" android:layout_wi ...

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

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

随机推荐

  1. oracle积累继续

    选出当天的日期的数据 select * from test_table where to_char(datetime, 'yyyy-mm-dd')=to_char(sysdate,'yyyy-mm-d ...

  2. JavaScript Maintainable

    1. Avoid conflict with Native Variable namespace

  3. TOP命令解析

    转自: http://www.cnblogs.com/yjf512/ 你不一定懂的cpu显示信息 2013-10-23 11:48 by 轩脉刃, 1688 阅读, 0 评论, 收藏, 编辑 在使用t ...

  4. CodeAssistant

    软件名:CodeAssistant 很霸气的名字,不过目前仅有的功能是代码格式化. 用途: 在向大神请教时,不妨用这小软件把自己的代码格一下.我们的口号就是让大神看得舒心,让BUG无处遁形. 演示: ...

  5. matlab中如何求某一个矩阵的标准差和均值

    方法: 先reshape成行向量或者列向量 然后,利用mean函数,std函数. 构造测试数据,可以利用random函数,就好.利用这个函数,可以构造不同分布的随机数列(或 矩阵). 如: >& ...

  6. 我的学习笔记之node----node.js+socket.io实时聊天(2)

    废话不多说,直接贴代码吧.注释很详细了. 服务端代码: /** * Created by LZX on 2015/10/7. */(function () { var d = document, w ...

  7. 在VC中集成cURL

    libcurl 库的代码是完全开源的,但是我们一般不会在项目中直接引入它的源代码,而是通过动态链接库隐式链接的方式引入 libcrul 库.也就是说,我们需要在自己的项目中引入 libcrul 相关的 ...

  8. Hibernate配置文件中hiberante.hbm2ddl.auto四个参数的配置

    我们在搭建环境的时候,在配置文件中有一个属性标签为: <property name="hibernate.hbm2ddl.auto">     </propert ...

  9. hdu 3062 2-sat入门题

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3062 #include <cstdio> #include <cmath> # ...

  10. Redis的安装及配置

    Redis安装及主从配置   一.何为Redis redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表) ...