Android-TextView跑马灯效果
要实现跑马灯还是比较简单的。
同时有几个需要注意的点,先上代码:
public class MTView extends TextView {
public MTView(Context context) {
super(context);
}
public MTView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public MTView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
public MTView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr);
}
@Override
public boolean isFocused() {
return true;
}
}
<me.fwl.MTView
android:layout_width="120dp"
android:layout_height="20dp"
android:layout_centerInParent="true"
android:ellipsize="marquee"
android:gravity="center_vertical"
android:singleLine="true"
android:marqueeRepeatLimit="marquee_forever"
android:text="Android中重写TextView实现 跑马灯 最简单的方法" />
需要注意的是:
1,ellipsize,这个属性表示文本过长的时候怎么处理?
可选的属性有如下几个:start表示截取一部分显示,省略号在开头;middle表示截取头尾,中间用省略号;end表示取前面这一段,省略号在后面;marquee表示跑马灯的滚动效果,不截取,一直滚动;none 表示不做任何处理,也就是截取前面一段,和end的区别是,end后面以省略号结尾,而none直接截断。
2,singleLine ,这个属性是必须要设置的。如果可以多行的,你怎么跑?用脚指头都可以想明白。
3,marqueeRepeatLimit,表示重复的次数,可以直接传一个int的值。传入marquee_forever 和 -1 表示无限次循环。
4,要获取焦点,这里采取的是,重写TextView的isFocus() 方法来控制其焦点,xml也可以设置获取焦点,但你不能保证被其他人抢走啊,所以,要重写。
--------------------------------------------升级---------------升级---------------升级---------------升级---------------升级---------------------------------------------------------------
这段时间,朋友遇到一个需求,就是在此基础上,要增加图标,也就是不是简单的文字滚动,前面还带个图标,而且是多条数据
上代码
String source = "<span><img src=\"icon_more_up.png\"><span>1文字这五年,张三这样谈文化遗产保护</span><img src=\"icon_more_up.png\"><span>2文字这五年,李四这样谈文化遗产保护</span></span>";
marqueue = view.findViewById(R.id.marqueue); marqueue.setText(Html.fromHtml(source, new Html.ImageGetter() {
@Override
public Drawable getDrawable(String s) {
int imgid = R.drawable.icon_more_down;
if (s.equals("icon_more_up.png")) {
imgid = R.drawable.icon_more_up;
}
Drawable drawable = ReportFragment.this.getActivity().getResources().getDrawable(imgid);
drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
return drawable;
}
}, null));
这个也很简单嘛,就这样
更新于:2017-9-16 中午,佛山
Android-TextView跑马灯效果的更多相关文章
- Android TextView 跑马灯效果 - 2018年6月19日
第一步在布局中添加加粗部分代码: <TextView android:id="@+id/tv_company" android:layout_width="0dp& ...
- Android:TextView跑马灯-详解
Android:TextView跑马灯_详解 引言: TextView之所以需要跑马灯,是由于文字太长,或者是吸引眼球. 关键代码如下: android:singleLine="true&q ...
- Android学习总结——TextView跑马灯效果
Android系统中TextView实现跑马灯效果,必须具备以下几个条件: 1.android:ellipsize="marquee" 2.TextView必须单行显示,即内容必须 ...
- 【Android】TextView跑马灯效果
老规矩,先上图看效果. 说明 TextView的跑马灯效果也就是指当你只想让TextView单行显示,可是文本内容却又超过一行时,自动从左往右慢慢滑动显示的效果就叫跑马灯效果. 其实,TextView ...
- TextView跑马灯效果
转载:http://www.2cto.com/kf/201409/330658.html 一.只想让TextView显示一行,但是文字超过TextView的长度怎么办?在开头显示省略号 android ...
- [Android1.5]TextView跑马灯效果
from: http://www.cnblogs.com/over140/archive/2010/08/20/1804770.html 前言 这个效果在两周前搜索过,网上倒是有转载,可恨的是转载之后 ...
- android实现跑马灯效果
第一步:新建一个新项目,MarqueeTextView 首先为了观察到跑马灯效果,将要显示的文字极可能 写长.在strings.xml目录里面将 <string name="hello ...
- android实现跑马灯效果(能够实现两个以上跑马灯)
本文用了继承自TextView的MarqueeTextView来实现跑马灯效果.原因是,跑马灯效果是须要TextView拥有焦点才会跑动的.而有时候TextView获得焦点会有点耗时,造成要等待一段时 ...
- Android单行跑马灯效果实现
参考网址:https://www.jianshu.com/p/e6c1b825d322 起初,使用了如下XML布局: <TextView android:id="@+id/tv_per ...
- android textview 跑马灯
<TextView android:layout_width="match_parent" android:layout_height="48dp" an ...
随机推荐
- IE10、IE11 User-Agent 导致的 ASP.Net 网站无法写入Cookie 问题
你是否遇到过当使用一个涉及到Cookie操作的网站或者管理系统时,IE 6.7.8.9下都跑的好好的,唯独到了IE10.11这些高版本浏览器就不行了?好吧,这个问题码农连续2天内遇到了2次.那么,我们 ...
- 当忘记mysql数据库密码时如何进行修改
因为长时间没有使用数据库了,或者把密码改完之后就忘了数据库密码,不能正常进入数据库,也无法修改密码,有一个简单的常用修改密码方式: 1.首先找到和打开mysql.exe和mysqld.exe所在的文件 ...
- ASP.NET Core中如影随形的”依赖注入”[下]: 历数依赖注入的N种玩法
在对ASP.NET Core管道中关于依赖注入的两个核心对象(ServiceCollection和ServiceProvider)有了足够的认识之后,我们将关注的目光转移到编程层面.在ASP.NET ...
- 通过重建Hosting系统理解HTTP请求在ASP.NET Core管道中的处理流程[下]:管道是如何构建起来的?
在<中篇>中,我们对管道的构成以及它对请求的处理流程进行了详细介绍,接下来我们需要了解的是这样一个管道是如何被构建起来的.总的来说,管道由一个服务器和一个HttpApplication构成 ...
- [C#] C# 知识回顾 - 特性 Attribute
C# 知识回顾 - 特性 Attribute [博主]反骨仔 [原文地址]http://www.cnblogs.com/liqingwen/p/5911289.html 目录 特性简介 使用特性 特性 ...
- [原]Cachedb 网络模块文档
Cachedb 网络模块文档 整体结构 多路复用 (epoll 模块) 事件驱动 (事件封装) 缓冲管理 (上层buffer管理) 设计思想 层次化的设计,每一个模块只调用上一个模块的接口,并将耦合聚 ...
- 著名ERP厂商的SSO单点登录解决方案介绍一
SSO英文全称Single Sign On,单点登录.SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统.它包括可以将这次主要的登录映射到其他应用中用于同一个用户 ...
- 云计算下PAAS的解析一
云计算下PAAS的解析一 PaaS是Platform-as-a-Service的缩写,意思是平台即服务. 把服务器平台作为一种服务提供的商业模式.通过网络进行程序提供的服务称之为SaaS( ...
- GJM : C#设计模式(1)——单例模式
感谢您的阅读.喜欢的.有用的就请大哥大嫂们高抬贵手"推荐一下"吧!你的精神支持是博主强大的写作动力以及转载收藏动力.欢迎转载! 版权声明:本文原创发表于 [请点击连接前往] ,未经 ...
- AEAI DP V3.6.0 升级说明,开源综合应用开发平台
AEAI DP综合应用开发平台是一款扩展开发工具,专门用于开发MIS类的Java Web应用,本次发版的AEAI DP_v3.6.0版本为AEAI DP _v3.5.0版本的升级版本,该产品现已开源并 ...