Android中使用TextView实现文字跑马灯效果
发布时间 - 2026-01-11 00:32:00 点击率:次通常情况下我们想实现文字的走马灯效果需要在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="@string/lyric" />
大家都懂的就不解释了。
singleLine :boolean型的是否让文字只显示在一行而不是多行显示
ellipsize:滚动效果,里面有(none,start,middle,end,marquee),其中none表示正常显示文字,即使一行显示不完全,也无任何效果。star,就是假如文字在一行显示不完全,在开头显示...,同理,end一行的最后一个文字后面加...,middle就是所有文字显示在一行,如果文字太多,在中间加入...。可能我解释的不清楚,大概就是这样 读者可以自己测试一下。至于marquee就是文字走马灯效果啦。
当然,如果你只设置了这些文字还是不会滚动的。还要使TextView获取焦点。
focusable:是否能够焦点,boolean型的
focusableInTouchMode:boolean型的。
在触摸模式下是否获取焦点。
当你设置了这些部署在手机上,很明显会实现走马灯效果。效果如下:
可是如果你在这个Activity实例中再添加一个编辑框控件,点击编辑框后就会发现走马灯效果消失了.
就像这样
这是为什么呢?
因为点击编辑框,编辑框会获取屏幕焦点,由于通常情况下屏幕的焦点只能有一个,TextView失去了焦点,也就不会滚动了。这时候我们要怎么办呢?
那就欺骗系统呗。告诉它我们的TextView也是有焦点的。没错 两个焦点。
如何做?我们就新建一个我们自己的TextView呗。
首先我们新建一个名为MyTextView继承TextView的类,重写里面的方法,其中有三个方法是必须的,就像我们总在MainActivity里面重写OnCreate方法一样,作用是什么 我也不清楚。好奇的同学请百度。哈哈~
我们要知道系统是如何判断一个控件是否获取焦点了呢?
public boolean isFocused() {
// TODO Auto-generated method stub
return super.isFocused();
}
就是这个方法。前面说了 我们要欺骗系统 我们的TextViwe是有焦点的。所以我们在这个方法里面一直return true就好了 哈哈
做完了这些别忘记把我们的TextView部署到布局文件中哦
布局代码:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<com.example.textview.MyTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="marquee"
android:singleLine="true"
android:text="@string/lyric" />
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
</LinearLayout>
MainActivity.class
package com.example.textview;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
MyTextView.class
package com.example.textview;
import android.content.Context;
import android.util.AttributeSet;
import android.view.WindowId.FocusObserver;
import android.widget.TextView;
public class MyTextView extends TextView{
public MyTextView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
// TODO Auto-generated constructor stub
}
public MyTextView(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
}
public MyTextView(Context context) {
super(context);
// TODO Auto-generated constructor stub
}
@Override
public boolean isFocused() {
// TODO Auto-generated method stub
return true;
}
}
对了 附上效果图。都看到光标在编辑框了~
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!
# textview 走马灯效果
# textview跑马灯
# android textview
# textview 跑马灯效果
# 走马灯
# 就像
# 在这个
# 是有
# 不清楚
# 重写
# 不完全
# 新建一个
# 自己的
# 这是
# 情况下
# 我也
# 就会
# 如果你
# 太多
# 那就
# 大家都
# 也就
# 就不
# 说了
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
如何选择PHP开源工具快速搭建网站?
Laravel辅助函数有哪些_Laravel Helpers常用助手函数大全
Bootstrap整体框架之CSS12栅格系统
Laravel怎么配置S3云存储驱动_Laravel集成阿里云OSS或AWS S3存储桶【教程】
关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)
Laravel如何获取当前登录用户信息_Laravel Auth门面使用与Session用户读取【技巧】
米侠浏览器网页背景异常怎么办 米侠显示修复
晋江文学城电脑版官网 晋江文学城网页版直接进入
Laravel如何使用模型观察者?(Observer代码示例)
JavaScript如何实现路由_前端路由原理是什么
Laravel怎么实现搜索功能_Laravel使用Eloquent实现模糊查询与多条件搜索【实例】
如何在HTML表单中获取用户输入并用JavaScript动态控制复利计算循环
Bootstrap CSS布局之列表
EditPlus中的正则表达式 实战(2)
Android 常见的图片加载框架详细介绍
车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办?
*服务器网站为何频现安全漏洞?
如何快速上传自定义模板至建站之星?
免费网站制作appp,免费制作app哪个平台好?
如何在沈阳梯子盘古建站优化SEO排名与功能模块?
Java解压缩zip - 解压缩多个文件或文件夹实例
电视网站制作tvbox接口,云海电视怎样自定义添加电视源?
Laravel如何使用Eloquent进行子查询
猎豹浏览器开发者工具怎么打开 猎豹浏览器F12调试工具使用【前端必备】
html如何与html链接_实现多个HTML页面互相链接【互相】
Laravel队列由Redis驱动怎么配置_Laravel Redis队列使用教程
html5的keygen标签为什么废弃_替代方案说明【解答】
Angular 表单中正确绑定输入值以确保提交与验证正常工作
清除minerd进程的简单方法
齐河建站公司:营销型网站建设与SEO优化双核驱动策略
微信h5制作网站有哪些,免费微信H5页面制作工具?
详解Oracle修改字段类型方法总结
如何基于云服务器快速搭建网站及云盘系统?
jquery插件bootstrapValidator表单验证详解
Windows驱动无法加载错误解决方法_驱动签名验证失败处理步骤
如何快速配置高效服务器建站软件?
Laravel怎么设置路由分组Prefix_Laravel多级路由嵌套与命名空间隔离【步骤】
JS去除重复并统计数量的实现方法
如何在腾讯云服务器上快速搭建个人网站?
Laravel如何实现登录错误次数限制_Laravel自带LoginThrottles限流配置【方法】
微信小程序 require机制详解及实例代码
Laravel如何实现全文搜索功能?(Scout和Algolia示例)
Laravel任务队列怎么用_Laravel Queues异步处理任务提升应用性能
高端建站如何打造兼具美学与转化的品牌官网?
中国移动官方网站首页入口 中国移动官网网页登录
C#如何调用原生C++ COM对象详解
网站图片在线制作软件,怎么在图片上做链接?
java中使用zxing批量生成二维码立牌
网站制作大概要多少钱一个,做一个平台网站大概多少钱?
jQuery validate插件功能与用法详解

