Android-单行跑马灯(一直循环)效果
2018-10-09 本文已影响64人
蘑菇v5
【声明:】本文是作者(蘑菇v5)原创,版权归作者 蘑菇v5所有,侵权必究。本文首发在简书。如若转发,请注明作者和来源地址!未经授权,严禁私自转载!
前言:
提示的效果,要求一直循环。
1、跑马灯效果(重要)属性:
android:ellipsize="marquee" //跑马灯效果 android:focusable="true" //获取焦点 android:singleLine="true" //单行
2.代码实现:
* author zsn10
* email:zsn1006@163.com
* date:2018/6/5
* desc:
*/
public class MarqueeTextView extends AppCompatTextView {
/** 滚动次数 */
private int marqueeNum = -1;//-1为永久循环。大于0是循环次数。`
public void setMarqueeNum(int marqueeNum) {
this.marqueeNum = marqueeNum;
}
public MarqueeTextView(Context context) {
super(context);
setAttr();
}
public MarqueeTextView(Context context, AttributeSet attrs) {
super(context, attrs);
setAttr();
}
public MarqueeTextView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
setAttr();
}
/**
* 始终获取焦点
*
* 跑马灯在TextView处于焦点状态的时候才会滚动
* @return
*/
@Override
public boolean isFocused() {
return true;
}
/**
* 设置相关属性
*/
private void setAttr(){
this.setEllipsize(TextUtils.TruncateAt.MARQUEE);//设置跑马等效果
this.setMarqueeRepeatLimit(marqueeNum);//设置跑马灯重复次数
this.setSingleLine(true);//设置单行
}
}
跑马灯效果