您的位置:首页 > 其它

TextView跑马灯效果实现

2017-06-20 14:46 337 查看
如果想让textView做出跑马灯的效果,必须使用TextView的一个属性就是

android:ellipsize="marquee"

这个属性,但是这个属性的使用是需要这个控件是一直有焦点的,所以需要着自己进行自定义View的编写的,所以采用如下步骤:

1、自定义TextView

//获取焦点的textView
public class MyTtxtView extends TextView {

//用代码new对象的时候会走此方法
public MyTtxtView(Context context) {
super(context);
}

//有属性的时候会走到这个地方,
public MyTtxtView(Context context, AttributeSet attrs) {
super(context, attrs);
}

//有style的样式的话会走到这个方法
public MyTtxtView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}

//表示有没有获取焦点
//跑马灯的话,,,首先需要调用这个方法判断是否有焦点
//只有设置成true的话,跑马灯才会有效果
//强制设置为有焦点

@Override
public boolean isFocused() {
return true;
}
}


2、替换原来布局文件中的TextView,变成自己的自定义的TextView

<com.lensman.a360.MyTtxtView
android:id="@+id/advertisement"
android:text="这是我第二次站在这里回味那种孤单了,也是最后一次。     上一次来的时候,是陈嫣然随我一道的。那是个刚下过雨的傍晚,一切都被雾气笼罩。
本文原创于鬼大爷鬼故事网,转载请注明原作者及出处,否则视为侵权。
原文链接:http://www.guidaye.com/dp/49028.html"
android:lines="1"
android:ellipsize="marquee"
android:layout_below="@+id/main_title_tv"
android:textColor="@color/black"
android:layout_width="match_parent"
android:layout_height="wrap_content" />


在这里面需要注意的是,必须将文本的行数设置成单独的一行

其实最简单的方法是如下的方法

android:focusable="true"
android:focusableInTouchMode="true"


加这两个字段就可以了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: