文字跑马灯

原文:http://my.oschina.net/u/126188/blog/29387

一,文字跑马灯

    同样的,先上效果图,

    实现起来非常简单,TextView中已经提供了多种显示接口,可以在文字显示不下时,以各种方式进行显示

例如

前置省略号
后置省略号

中间省略号   
跑马灯显示   

主要的区别在Xml中android:ellipsize 属性的不同

android:ellipsize

    设置当文字过长时,该控件该如何显示。有如下值设置:”start”—–省略号显示在开头;”end”——省略号显示在结尾;”middle”—-省略号显示在中间;”marquee” ——跑马灯的方式显示(动画横向移动)


由此只需要在Xml文件中设置TextView的ellipsize属性为marquee即可

<com.widget.ScrollForeverTextView

android:layout_width="wrap_content" android:layout_height="wrap_content"

android:textSize="28dip" android:singleLine="true"

android:ellipsize="marquee" android:marqueeRepeatLimit="marquee_forever"

android:textColor="#ffd0eeee" android:text="超出七个字会有跑马灯效果"

android:focusable="true" android:id="@+id/channel">

</com.widget.ScrollForeverTextView>
这里你一定发现了,笔者自定义了一个TextView对他进行了显示。原因是TextView只会在当获得焦点时才对文字显示效果进行相应,我们要实现一直显示跑马灯,需要对其进行自定义,方法很简单,覆盖TextView的isFocused()函数,让它一直返回true就行了

01import android.content.Context;
02import android.util.AttributeSet;
03import android.widget.TextView;
04 
05/**
06 * 单行文本跑马灯控件
07 *
08 * @author admin
09 *
10 */
11 
12public class ScrollForeverTextView extends TextView {
13 
14    public ScrollForeverTextView(Context context) {
15        super(context);
16        // TODO Auto-generated constructor stub
17    }
18 
19    public ScrollForeverTextView(Context context, AttributeSet attrs) {
20        super(context, attrs);
21    }
22 
23    public ScrollForeverTextView(Context context, AttributeSet attrs,
24            int defStyle) {
25        super(context, attrs, defStyle);
26    }
27 
28    @Override
29    public boolean isFocused() {
30        return true;
31    }
32 
33}
然后再将这个自定义的TextView显示屏幕上就大功告成了。   
    二,文字阴影 
    先上效果图 
 
同跑马灯一样,Android也为TextView文字阴影提供了显示接口,可以方便的设置文字阴影 

android:shadowColor
指定文本阴影的颜色,需要与shadowRadius一起使用。

android:shadowDx
设置阴影横向坐标开始位置。

android:shadowDy

设置阴影纵向坐标开始位置。

android:shadowRadius

设置阴影的半径。设置为0.1就变成字体的颜色了,一般设置为3.0的效果比较好。

如此,将这个TextView显示出来,漂亮的带有阴影的字体就出现了。 
下一期我来讲解Android中各种让人抓狂的诡异Bug
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值