Android用过TextView实现跑马灯效果的示例
作者:愤斗的小薪 发布时间:2023-07-27 11:16:54
标签:textview,跑马灯
以前就遇到过这个问题,今天重新拾起来。
跑马灯效果其实就是当文字超过TextView控件宽度的时候,使用滚动的方式显示出来:
方法1:(直接xml搞定)
Android系统中TextView实现跑马灯效果,必须具备以下几个条件:
1、android:ellipsize=”marquee”;
2、TextView必须单行显示,且内容必须超出TextView宽度;
3、TextView要获得焦点才能滚动。
xml代码如下:
<TextView
android:id="@+id/alarm_location"
android:layout_width="20dp"
android:padding="@dimen/space_4"
android:layout_height="wrap_content"
app:layout_rowWeight="2"
app:layout_columnWeight="2"
android:text="0"
android:ellipsize="marquee"
android:focusableInTouchMode="true"
android:singleLine="true"
android:focusable="true"/>
其中:ellipsize属性指的是文字长度超过TextView的长度的时候的显示方式,具体参数有
**Android:ellipsize=”start”—–省略号显示在开头 “…pedia”
android:ellipsize=”end”——省略号显示在结尾 “encyc…”
android:ellipsize=”middle”—-省略号显示在中间 “en…dia”
android:ellipsize=”marquee”–以横向滚动方式显示(需获得当前焦点时)**
方法2(自定义控件)
我看了自己以前的实现方式是这样,也许在低版本的平台上第一种方式适配不好吧。如果达不到要求可以试试这种方式。
TextVeiwSlide.Java
package edu.hrbeu.ice.mobilecar.widget;
import android.content.Context;
import android.util.AttributeSet;
import android.widget.TextView;
/**
* @author 编写人: xiaox
* @date 创建时间: 2017/1/10
* @Description 功能描述: 该类
*/
public class TextViewSlide extends TextView {
public TextViewSlide(Context context) {
super(context);
}
public TextViewSlide(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
public boolean isFocused() {
return true;
}
}
activity_main.xml
<edu.hrbeu.ice.mobilecar.widget.TextViewSlide
android:id="@+id/alarm_type"
android:layout_width="@dimen/item_width"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:layout_gravity="center_vertical"
android:layout_weight="1"
android:padding="8dp"
android:marqueeRepeatLimit="marquee_forever"
android:ellipsize="marquee"
android:scrollHorizontally="true"
android:focusableInTouchMode="true"
android:singleLine="true"
tool:text="asda" />
可以看到第二种方式也就是在自定义控件中获取了该控件的焦点。感觉和第一种没有区别。
目前在android7.1.1和android4.4上实验两种方法都没有问题。
来源:http://blog.csdn.net/qq_34897442/article/details/77015430


猜你喜欢
- TCP与UDP都属于TCP/IP协议TCP(Transmission Control Protocol,传输控制协议)是面向连接的协议,也就
- 本文实例为大家分享了Java模拟HTTP Get Post请求,校园BBS自动回帖功能,供大家参考,具体内容如下设计思路找到帖子链接的集合,
- 若干年前在使用SpringMVC的时候,发现springMVC可以把HttpSession,HttpRequest组件化注入:@Autowi
- 数据导出到Excel几乎是所有客户都会提出的一个需求。下面我就分享一下我的代码。首先需要引入的jar包:然后就是正式代码了。package
- Android:AIDL和远程Service调用本讲的内容,理解起来很难,也许你看了很多资料也看不明白,但是用起来缺简单的要命。所以我们干脆
- JAVA JNI函数的注册过程详细介绍我们在java中调用Native code的时候,一般是通过JNI来实现的,我们只需要在java类中加
- Mutex 中文为互斥,Mutex 类叫做互斥锁。它还可用于进程间同步的同步基元。Mutex 跟 lock 相似,但是 Mutex 支持多个
- 本文实例为大家分享了Unity创建平铺网格地图的具体代码,供大家参考,具体内容如下创建预制件先拖进场景,再从层级拖回资源选中源图像文件,设置
- 引言在Flutter开发中,所有的组件和页面都继承自Widget,所以探索页面的生命周期其实就是Widget的生命周期。 在 Flutter
- @PathVariable和@RequestParam传参为空@RestControllerpublic class UserControl
- 在Spring中有一个类CachingUserDetailsService实现了UserDetailsService接口,该类使用静态代理模
- 语音获取要想发送语音信息,首先得获取语音,这里有几种方法,一种是使用DirectX的DirectXsound来录音,我为了简便使用一个开源的
- 简介通过 pulsar-flink-connector 读取到 Apache pulsar 中的namespaces、topics的元数据信
- 本文研究的主要是Java中finally和return的关系,具体介绍和实例如下所示。finally 和 return 关系的总结1.try
- 看下效果图主要看下自定义view 代码public class ProcessImageView extends ImageView{ &
- 当前,JVM生态圈主要的三大构建工具:Apache Ant(带着Ivy)MavenGradle对于初学者,Ant是最清晰的,只要读懂Xml配
- 前言2016年3月修改,结合自己的工作和平时学习的体验重新谈一下为什么要进行代码优化。在修改之前,我的说法是这样的:就像鲸鱼吃虾米一样,也许
- 本文实例讲述了Android编程设计模式之迭代器模式。分享给大家供大家参考,具体如下:一、介绍迭代器模式(Iterator Pattern)
- 1.设计原理通过JDK的Proxy方式或者CGLIB方式生成代理对象的时候,相关的 * 已经配置到代理对象中去了;通过 * 回调JDK动态代
- android多线程断点下载,带进度条和百分比显示,断点下载的临时数据保存到SD卡的文本文档中,建议可以保存到本地数据库中,这样可以提高存取