欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 运维知识 > Android >内容正文

Android

Android-TextView跑马灯效果

发布时间:2025/3/8 Android 42 豆豆
生活随笔 收集整理的这篇文章主要介绍了 Android-TextView跑马灯效果 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

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

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

1 public class MTView extends TextView { 2 3 4 public MTView(Context context) { 5 super(context); 6 } 7 8 public MTView(Context context, AttributeSet attrs) { 9 super(context, attrs); 10 } 11 12 public MTView(Context context, AttributeSet attrs, int defStyleAttr) { 13 super(context, attrs, defStyleAttr); 14 } 15 16 public MTView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { 17 super(context, attrs, defStyleAttr); 18 } 19 20 @Override 21 public boolean isFocused() { 22 return true; 23 } 24 } 1 <me.fwl.MTView 2 android:layout_width="120dp" 3 android:layout_height="20dp" 4 android:layout_centerInParent="true" 5 android:ellipsize="marquee" 6 android:gravity="center_vertical" 7 android:singleLine="true" 8 android:marqueeRepeatLimit="marquee_forever" 9 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() {@Overridepublic 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 中午,佛山

转载于:https://www.cnblogs.com/fwling/p/6249393.html

总结

以上是生活随笔为你收集整理的Android-TextView跑马灯效果的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。