android TextView实现跑马灯效果
作者:段合江 时间:2023-07-27 16:35:31
本文实例为大家分享了android TextView跑马灯效果的具体代码,供大家参考,具体内容如下
一、要点
设置四个属性
android:singleLine="true"
android:ellipsize="marquee"
android:focusable="true"
android:focusableInTouchMode="true"
直接在xml中使用
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:singleLine="true"
android:ellipsize="marquee"
android:focusable="true"
android:focusableInTouchMode="true"
android:text="人生是一场无休、无歇、无情的战斗,凡是要做个够得上称为人的人,都得时时向无形的敌人作战。" />
注意:singleLine属性 不能换成 maxlLines
二、复杂布局
在复杂的布局中可能不会实现跑马灯效果。例如如下布局中,就只有第一个TextView会有跑马灯效果
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tv1"
android:singleLine="true"
android:ellipsize="marquee"
android:focusable="true"
android:focusableInTouchMode="true"
android:text="人生是一场无休、无歇、无情的战斗,凡是要做个够得上称为人的人,都得时时向无形的敌人作战。" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/tv1"
android:layout_marginTop="10dp"
android:singleLine="true"
android:ellipsize="marquee"
android:focusable="true"
android:focusableInTouchMode="true"
android:text="人生是一场无休、无歇、无情的战斗,凡是要做个够得上称为人的人,都得时时向无形的敌人作战。" />
</RelativeLayout>
这时候就需要自定义View,实现跑马灯效果
自定义MarQueeTextView extents TextView 重写isFocused()方法,返回true
public class MarqueeText extends TextView {
public MarqueeText(Context context) {
super(context);
}
public MarqueeText(Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
}
public MarqueeText(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
@Override
public boolean isFocused() {
return true;
}
}
布局中使用
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.example.dhj.marqueedemo.View.MarqueeText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tv1"
android:singleLine="true"
android:ellipsize="marquee"
android:focusable="true"
android:focusableInTouchMode="true"
android:text="人生是一场无休、无歇、无情的战斗,凡是要做个够得上称为人的人,都得时时向无形的敌人作战。" />
<com.example.dhj.marqueedemo.View.MarqueeText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/tv1"
android:layout_marginTop="10dp"
android:singleLine="true"
android:ellipsize="marquee"
android:focusable="true"
android:focusableInTouchMode="true"
android:text="人生是一场无休、无歇、无情的战斗,凡是要做个够得上称为人的人,都得时时向无形的敌人作战。" />
</RelativeLayout>
标签:android,TextView,跑马灯
0
投稿
猜你喜欢
Java中的Gradle与Groovy的区别及存在的关系
2023-05-13 17:28:46
Android编程实现圆角边框布局效果的方法
2021-06-07 08:54:01
JAVA JDK8 List分组获取第一个元素的方法
2021-06-24 13:07:51
@TransactionalEventListener的使用和实现原理分析
2022-01-19 06:15:11
QT自定义QTextEdit实现大数据的实时刷新显示功能实例
2023-05-06 03:18:28
Java中间消息件ActiveMQ使用实例
2021-10-10 14:24:21
详解SpringMVC重定向传参数的实现
2022-09-20 19:01:02
java解析XML详解
2023-02-26 09:19:51
利用C#操作WMI指南
2022-05-07 18:02:42
深入学习C#多线程
2021-06-12 12:35:04
idea mybatis配置log4j打印sql语句的示例
2023-11-25 10:32:39
解决Springboot @Autowired 无法注入问题
2022-04-14 21:19:01
java 生成有序账号的实现方法
2023-08-12 03:28:01
关于AndroidStudio新建与编译项目速度慢解决办法
2023-05-22 05:05:10
spring boot整合RabbitMQ实例详解(Fanout模式)
2022-08-18 18:52:30
Android自定义View实现选座功能
2022-12-23 00:05:45
Android Fragment+FragmentTabHost组件实现常见主页面(仿微信新浪)
2023-10-20 10:00:50
C# 使用com获取Windows摄像头列表
2022-11-03 09:50:49
C# 创建单例的多种方式
2023-03-17 05:23:48
Kotlin利用Regex如何构建正则表达式详解
2022-12-25 18:31:10