资讯专栏INFORMATION COLUMN

Android 使用TextView实现跑马灯效果

DDreach / 2379人阅读

摘要:这种方法确实可以实现。第一个跑马灯效果没问题,第二个就没实现了,平常开发中,两个都解决不了,平常开发中更解决不了了。这个时候实现中的一个方法,返回改成。然后我们再看一下效果。已经全部实现成功了。

前言

我们在开发中经常会遇到一个小问题。比如下面一个小例子:

 

这个文字太长,单行中导致无法全部显示出来,这就是今天要实现的功能。 当然,百度中也有很多这种解决方案。

其中有一种,例如:

    

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

xml中添加这3行 就能实现效果了。

 

这种方法确实可以实现。

事实上开发过程中,布局是非常复杂和多变的,并不是我们一个TextView就能解决所有的布局和要求。

例如,现在用两个TextView 

 1 
10 
11     
20 
21     
31 
32 

这个简单的功能就满足不了了。

第一个跑马灯效果没问题,第二个就没实现了,平常开发中,两个TextView都解决不了,平常开发中更解决不了了。

这就是今天我所要讲的内容。

首先,我们先建一个类,继承TextView这个类。

 1 package com.example.marqueetextview;
 2 
 3 import android.content.Context;
 4 import android.util.AttributeSet;
 5 import android.view.ViewDebug.ExportedProperty;
 6 import android.widget.TextView;
 7 
 8 public class MarqueeText extends TextView{
 9 
10     public MarqueeText(Context context) {
11         super(context);
12     }
13 
14     public MarqueeText(Context context, AttributeSet attrs, int defStyle) {
15         super(context, attrs, defStyle);
16     }
17 
18     public MarqueeText(Context context, AttributeSet attrs) {
19         super(context, attrs);
20     }
21     @Override
22     @ExportedProperty(category = "focus")
23     public boolean isFocused() {
24         return true;
25     }
26 }

这个时候实现TextView中的一个方法,isFocused(), 返回改成return true。

 然后进Xml中 把TextView修改成我们自定义的这个控件。

 

 1 
10 
11     
20 
21     
31 
32 

然后我们再看一下效果。

已经全部实现成功了。

那这到底是为什么呢? 奥秘就在我们重载的isFocused()这个函数. return true全部强制Focused.都有焦点了,就都能实现了

如果没设置,焦点都第一个,第二个就无法实现。

这个是我写的Demo:https://pan.baidu.com/s/1M1TghCh_R3kFnReM4li1VQ

 

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/2523.html

相关文章

  • TextView 使用详解

    showImg(https://upload-images.jianshu.io/upload_images/5851256-0b56fc8e812963d7.gif?imageMogr2/auto-orient/strip); 极力推荐文章:欢迎收藏Android 干货分享 showImg(https://upload-images.jianshu.io/upload_images/58512...

    Eidesen 评论0 收藏0
  • Android仿淘宝头条竖直马灯式新闻标题及“分页思想

    摘要:无论是跑马灯新闻标题还是饿了么的导航栏,它们的作用都是一样的,那就是复用有限的屏幕空间,展示更为丰富的内容。最后附上源码的地址参考文章之的简单使用仿淘宝首页的淘宝头条垂直滚动仿饿了么首页导航栏 在淘宝App的首页中间位置,有一块小小的地方在不知疲倦地循坏滚动着头条标题(见下图的红框区域),这样的设计无疑能够在有限的手机屏幕上展示更丰富的内容。而实现这一功能需要用到的控件就是我在上一篇文...

    FullStackDeveloper 评论0 收藏0
  • Android仿淘宝头条竖直马灯式新闻标题及“分页思想

    摘要:无论是跑马灯新闻标题还是饿了么的导航栏,它们的作用都是一样的,那就是复用有限的屏幕空间,展示更为丰富的内容。最后附上源码的地址参考文章之的简单使用仿淘宝首页的淘宝头条垂直滚动仿饿了么首页导航栏 在淘宝App的首页中间位置,有一块小小的地方在不知疲倦地循坏滚动着头条标题(见下图的红框区域),这样的设计无疑能够在有限的手机屏幕上展示更丰富的内容。而实现这一功能需要用到的控件就是我在上一篇文...

    codecook 评论0 收藏0
  • TextView马灯

    摘要:设置走马灯形式显示给设置以上的属性,便是指定超出范围的时候以跑马的形式显示注意上面的属性是只有在内容超出宽度时候才有效果。不能用属性,要用属性。别忘了在里面让去获取一下焦点。设置textView走马灯形式显示: android:marqueeRepeatLimit=marquee_forever android:scrollHorizontally=true android:focusab...

    NoraXie 评论0 收藏0
  • Android控件之TextView全解析

    摘要:设置控件中内容的位置,如上表示居中。为文本指定输入法,需要完全限定名完整的包名。在指定的情况下,设置重复滚动的次数,当设置为时表示无限次。限制显示的文本长度,超出部分不显示。 前言 大家好!在前几篇文章里,我们详细介绍了Android中的常用布局,使大家对Android中的页面布局有了一定认识,而对于布局中使用的一些UI控件如Button、TextView等,有的读者可能还存在一些困惑...

    jsdt 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<