android原生TextView怎么控制是否开始跑走马灯

2024-01-06 15:48

本文主要是介绍android原生TextView怎么控制是否开始跑走马灯,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在实际项目中,经常遇到文本超出控件宽度,显示不全,此时android提供了一个方法:

   void android.widget.TextView.setEllipsize(TruncateAt where)  

   此方法意思就是设置文本超出宽度的展示效果。TruncateAt定义如下:


  public static enum TruncateAt {END,MARQUEE,MIDDLE,START;private TruncateAt() {}}
   END: 表示在文本展示不全时候,在文本末尾显示省略号

   MARQUEE: 表示在文本展示不全时候,以走马灯形式滚动

   MIDDLE:表示在文本展示不全时候,在文本中间尾显示省略号

   START:表示在文本展示不全时候,在文本开始处显示省略号

  默认不设置,表示无以上效果。超出控件部分文字会被截断显示。

  所以,可以使用null关闭ellipsize。即:

  setEllipsize(null);

另外,以上属性设置是立即生效的。即如果文本是MARQUEEN,走马灯滚动状态, 
如果设置为null时候,在滚动的走马灯马上会回到初始状态。且文本被截断。
如果设置为END,在滚动的走马灯会回到末尾有省略号的样式。  
控制走马灯滚动可以如下设置:
   // 开始滚动public void startScroll() {setEllipsize(TextUtils.TruncateAt.MARQUEE);}// 停止滚动,回到起点public void stopScroll() {setEllipsize(TextUtils.TruncateAt.END);或者setEllipsize(null);}



android样进行走马灯滚动前提是该控件在焦点状态,且可以聚焦。但是很多时候文本不聚焦也需要滚动提示用户。
如果不自定义view,那么android系统的TextView怎么样才能达到效果呢?
答案就是复写TextView的isFocused方法:
   //默认滚动@Overridepublic boolean isFocused() {return true;}

另外,setSingleLine()或setHorizontallyScrolling(bool)来限制为单行文本。
如果setMaxLines(int)被用来设置两行或两行以上的文本,只有END和MARQUEE被ellipsize方法支持(其他ellipsiz类型将不会做任何事情)。

示列:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical"android:layout_width="match_parent"android:layout_height="match_parent"><com.starcor.hunan.MarqueeTextViewandroid:id="@+id/textView"android:layout_width="match_parent"android:layout_height="wrap_content"android:maxLines="1"android:scrollHorizontally="true"android:layout_centerInParent="true"android:singleLine="true"android:textColor="#ff0000"android:focusable="true"android:textSize="24px"android:marqueeRepeatLimit="marquee_forever"android:focusableInTouchMode="true"/>
</FrameLayout>


public class MarqueeTextView extends TextView{public MarqueeTextView(Context context) {super(context);}public MarqueeTextView(Context context, AttributeSet attrs) {super(context, attrs);init();}public MarqueeTextView(Context context, AttributeSet attrs, int defStyle) {super(context, attrs, defStyle);init();}private void init() {this.setScrollbarFadingEnabled(true);this.setHorizontallyScrolling(true);this.setHorizontalFadingEdgeEnabled(true);this.setSingleLine(true);this.setFocusable(true);this.setMarqueeRepeatLimit(-1);this.setMaxLines(1);}@Overridepublic boolean isFocused() {return true;}}


这篇关于android原生TextView怎么控制是否开始跑走马灯的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/576813

相关文章

怎么用idea创建一个SpringBoot项目

《怎么用idea创建一个SpringBoot项目》本文介绍了在IDEA中创建SpringBoot项目的步骤,包括环境准备(JDK1.8+、Maven3.2.5+)、使用SpringInitializr... 目录如何在idea中创建一个SpringBoot项目环境准备1.1打开IDEA,点击New新建一个项

Spring如何使用注解@DependsOn控制Bean加载顺序

《Spring如何使用注解@DependsOn控制Bean加载顺序》:本文主要介绍Spring如何使用注解@DependsOn控制Bean加载顺序,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录1.javascript 前言2. 代码实现总结1. 前言默认情况下,Spring加载Bean的顺

Android DataBinding 与 MVVM使用详解

《AndroidDataBinding与MVVM使用详解》本文介绍AndroidDataBinding库,其通过绑定UI组件与数据源实现自动更新,支持双向绑定和逻辑运算,减少模板代码,结合MV... 目录一、DataBinding 核心概念二、配置与基础使用1. 启用 DataBinding 2. 基础布局

Android ViewBinding使用流程

《AndroidViewBinding使用流程》AndroidViewBinding是Jetpack组件,替代findViewById,提供类型安全、空安全和编译时检查,代码简洁且性能优化,相比Da... 目录一、核心概念二、ViewBinding优点三、使用流程1. 启用 ViewBinding (模块级

基于Python开发Windows屏幕控制工具

《基于Python开发Windows屏幕控制工具》在数字化办公时代,屏幕管理已成为提升工作效率和保护眼睛健康的重要环节,本文将分享一个基于Python和PySide6开发的Windows屏幕控制工具,... 目录概述功能亮点界面展示实现步骤详解1. 环境准备2. 亮度控制模块3. 息屏功能实现4. 息屏时间

qt5cored.dll报错怎么解决? 电脑qt5cored.dll文件丢失修复技巧

《qt5cored.dll报错怎么解决?电脑qt5cored.dll文件丢失修复技巧》在进行软件安装或运行程序时,有时会遇到由于找不到qt5core.dll,无法继续执行代码,这个问题可能是由于该文... 遇到qt5cored.dll文件错误时,可能会导致基于 Qt 开发的应用程序无法正常运行或启动。这种错

电脑提示xlstat4.dll丢失怎么修复? xlstat4.dll文件丢失处理办法

《电脑提示xlstat4.dll丢失怎么修复?xlstat4.dll文件丢失处理办法》长时间使用电脑,大家多少都会遇到类似dll文件丢失的情况,不过,解决这一问题其实并不复杂,下面我们就来看看xls... 在Windows操作系统中,xlstat4.dll是一个重要的动态链接库文件,通常用于支持各种应用程序

python判断文件是否存在常用的几种方式

《python判断文件是否存在常用的几种方式》在Python中我们在读写文件之前,首先要做的事情就是判断文件是否存在,否则很容易发生错误的情况,:本文主要介绍python判断文件是否存在常用的几种... 目录1. 使用 os.path.exists()2. 使用 os.path.isfile()3. 使用

Python远程控制MySQL的完整指南

《Python远程控制MySQL的完整指南》MySQL是最流行的关系型数据库之一,Python通过多种方式可以与MySQL进行交互,下面小编就为大家详细介绍一下Python操作MySQL的常用方法和最... 目录1. 准备工作2. 连接mysql数据库使用mysql-connector使用PyMySQL3.

如何搭建并配置HTTPD文件服务及访问权限控制

《如何搭建并配置HTTPD文件服务及访问权限控制》:本文主要介绍如何搭建并配置HTTPD文件服务及访问权限控制的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、安装HTTPD服务二、HTTPD服务目录结构三、配置修改四、服务启动五、基于用户访问权限控制六、