Android用过TextView实现跑马灯效果的示例
时间:2022-07-28
本文章向大家介绍Android用过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上实验两种方法都没有问题。
以上就是本文的全部内容,希望对大家的学习有所帮助。
- UI设计高效学习网站&工具,来自学长的收藏夹哦
- 安装git出现templates not found的问题
- 时间戳 时间
- jenkins 设置 gitlab web hooks
- 测试流程?项目管理流程?
- 学web前端开发写给新手的建议,超实用!
- 价值22万的5字母域名sanwa.com被启用
- Django admin 一些有用的设置
- mysql @value := 用法
- css样式—字体垂直、水平居中
- maven可选依赖(Optional Dependencies)和依赖排除(Dependency Exclusions)
- gitignore 使用
- 区块链学堂——区块链词汇手册
- Git SSH Key 生成步骤
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- 蓝牙芯片----BK3431开发笔记------RW stack中添加自定义服务教程(4)
- 图像简单处理
- 蓝牙---BLE GATT介绍
- Access数据库密码破解 C#
- 没啥用,更换注册表信息使webbrower选择适合的版本
- linux下分割和合并压缩包
- 编译.net .net Core程序 代码,仅做备份
- js删除数组对象中符合条件的数据
- .net core webapi jwt 更为清爽的认证 ,续期很简单(2)
- 手把手教你写一个windows服务 【基于.net】 附实用小工具{注册服务/开启服务/停止服务/删除服务}
- 一网打尽枚举操作 .net core
- Jenkins 发布.net core 程序,服务端无法下载nuget包的解决方法 error NU1102: 找不到版本为 (>= 3.1.6) 的包
- NET Core Kestrel部署HTTPS 一个服务器绑一个证书 一个服务器绑多个证书
- .net core webapi jwt 更为清爽的认证 ,续期很简单(1)
- 用flask来在线管理你的iptables