Android-TextView跑马灯效果
2024-10-19 13:19:07
要实现跑马灯还是比较简单的。
同时有几个需要注意的点,先上代码:
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 中午,佛山
最新文章
- IE6、7下html标签间存在空白符,导致渲染后占用多余空白位置的原因及解决方法
- UICollectionLayout布局 —— UIKit之学习UICollectionView记录二《流水布局》
- 关于iOS后台问题( 一 )(ios后台刷新,后台定位,后台下载,真后台)
- Java Ant build.xml详解
- angular-file-upload 中文API
- 第二章 XHTML基础
- ChineseCounter.cs 统计中文文本中常用字占比
- html5属性placeholder的js 向下兼容支持(jquery版)
- 使用紧凑的序列化器,数倍提升性能 —— ESFramework 4.0 快速上手(11)
- vim编辑器学习记录
- CentOs中玩docker
- 前端学习 -- Html&;Css -- 层级和透明度
- 单例模式(懒汉、饿汉、同步锁、static、枚举)实现
- python爬虫积累(一)--------selenium+python+PhantomJS的使用
- 安装postgis,使用postgis导入shapefile的步骤总结
- Mac下FTP的使用
- C_Learning (1)
- 转:.net设计模式之单例模式
- Badboy安装和介绍
- 【bzoj3670】[Noi2014]动物园