返回顶部
首页 > 资讯 > 精选 >android中怎么利用TextView实现跑马灯效果
  • 294
分享到

android中怎么利用TextView实现跑马灯效果

androidtextview 2023-05-31 00:05:06 294人浏览 泡泡鱼
摘要

这篇文章给大家介绍Android中怎么利用TextView实现跑马灯效果,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。一、要点设置四个属性android:singleLine="true"andro

这篇文章给大家介绍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实现跑马灯效果就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

--结束END--

本文标题: android中怎么利用TextView实现跑马灯效果

本文链接: https://lsjlt.com/news/222460.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作