要实现跑马灯还是比较简单的。

同时有几个需要注意的点,先上代码:

 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 中午,佛山

最新文章

  1. IE6、7下html标签间存在空白符,导致渲染后占用多余空白位置的原因及解决方法
  2. UICollectionLayout布局 —— UIKit之学习UICollectionView记录二《流水布局》
  3. 关于iOS后台问题( 一 )(ios后台刷新,后台定位,后台下载,真后台)
  4. Java Ant build.xml详解
  5. angular-file-upload 中文API
  6. 第二章 XHTML基础
  7. ChineseCounter.cs 统计中文文本中常用字占比
  8. html5属性placeholder的js 向下兼容支持(jquery版)
  9. 使用紧凑的序列化器,数倍提升性能 —— ESFramework 4.0 快速上手(11)
  10. vim编辑器学习记录
  11. CentOs中玩docker
  12. 前端学习 -- Html&amp;Css -- 层级和透明度
  13. 单例模式(懒汉、饿汉、同步锁、static、枚举)实现
  14. python爬虫积累(一)--------selenium+python+PhantomJS的使用
  15. 安装postgis,使用postgis导入shapefile的步骤总结
  16. Mac下FTP的使用
  17. C_Learning (1)
  18. 转:.net设计模式之单例模式
  19. Badboy安装和介绍
  20. 【bzoj3670】[Noi2014]动物园

热门文章

  1. 使用redis构建可靠分布式锁
  2. python之路 - 基础1
  3. 按需加载.js .css文件
  4. 参考bootstrap中的popover.js的css画消息弹框
  5. Java 输出流中的flush方法
  6. Android消息传递之基于RxJava实现一个EventBus - RxBus
  7. C#向PPT文档插入图片以及导出图片
  8. Asp.net Core准备工作
  9. CSS 3 学习——transform 3D转换渲染
  10. 自己来实现一个简易的OCR