走马灯效果的代码,对TextView进行一下重写即可:
public class AutoScrollTextView extends TextView {
public final static String TAG = AutoScrollTextView.class.getSimpleName();
private float mTxtLength = 0f;// 文本长度
private float step = 0f;// 文字的横坐标
private float y = 10f;// 文字的纵坐标
private float mInitX = 0.0f;// 初始文字坐标
private float mEndX = 0.0f;// 判断文字左面坐标.
private Paint paint = null;// 绘图样式
private String text = "";// 文本内容
public AutoScrollTextView(Context context) {
super(context);
}
public AutoScrollTextView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public AutoScrollTextView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
public void init() {
paint = getPaint();
text = getText().toString();
mTxtLength = paint.measureText(text);
step = mTxtLength;
mInitX = getLeft() + getLayoutParams().width + mTxtLength;
mEndX = getLeft() + getLayoutParams().width + mTxtLength * 2;
y = getTextSize() + getPaddingTop();
invalidate();
}
@Override
public void onDraw(Canvas canvas) {
canvas.drawText(text, mInitX - step, y, paint);
step += 1;
if (step > mEndX) {
step = mTxtLength;
}
invalidate();
}
}
在Activity中调用一下init()方法即可.
布局文件还是贴一下吧:
<com.ex.AutoScrollTextView
android:id="@+id/TextViewNotice"
android:layout_width="100dp"
android:layout_height="30dp"
android:layout_marginLeft="100dp"
android:layout_marginTop="100dp"
android:background="#EEE"
android:paddingTop="5dp"
android:text="浮动的文字欢饮你......."
android:textColor="#000"
android:textSize="15sp" >
</com.ex.AutoScrollTextView>
今天补上一种系统自带的方法:
<TextView
android:id="@+id/mTxt"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="100dp"
android:ellipsize="marquee"
android:fadingEdge="none"
android:focusable="true"
android:focusableInTouchMode="true"
android:marqueeRepeatLimit="marquee_forever"
android:scrollHorizontally="true"
android:singleLine="true"
android:text="开放平台成网络淘金下一 ..."
android:textColor="@android:color/white"
android:textSize="18dip" />
直接设置对应TextView的文本内容即可.
分享到:
相关推荐
跑文字上下、左右滚动跑马灯效果,欢迎指正
DMScrollingTicker-master.zip 文字滚动效果
超简单跑马灯文字滚屏效果,兼容IE、火狐
使用 vue 绑定style属性实现文字跑马灯效果。。。。。。。
Android文字跑马灯效果,TextView的文字跑马灯效果
本代码,实现TextView的文字滚动播放效果,跑马灯特效,构成简约实用,感觉好点赞
Vue实现跑马灯样式文字横向滚动 ... 代码: 封装一个专门用来实现跑马灯效果的组件marquee组件 <template> <!-- 跑马灯组件 --> <div class="marquee-wrap" ref="marquee-wrap"> <div class="scroll" ref="scroll
unity中使用c#实现跑马灯效果,可根据自身需求进行修改和优化
基于Qt的跑马灯效果,支持配置文件读取。tcp 设置字体、颜色,大小,内容功能
android跑马灯效果,失去焦点也可以实现,里面的代码有注释,如果还是看不懂请联系我
文字可以自己滚动,无缝衔接的文字跑马灯效果。没毛病!
jQuery无缝滚动跑马灯效果 jQuery无缝滚动跑马灯效果 jQuery无缝滚动跑马灯效果 jQuery无缝滚动跑马灯效果 jQuery无缝滚动跑马灯效果
duilib原生库,派生Lable控件,C++实现文字跑马灯 滚动显示的效果。 派生出来的lable控件,具有以下功能: 1. 基类 Lable的所有基本功能 2. 当设置的文字不为空时,自动跑马灯 滚动显示文字,显示速度由外部 xml ...
C#制作的文字滚动特效-跑马灯,看上去挺不错的效果,很**滑,还可以适时显示跑马灯位置、目标方向等,对中文支持良好,程序小巧,新手也能看得懂,一款很好的学**资料。
C# 跑马灯 C#滚动文字 C# 跑马灯 C#滚动文字 C# 跑马灯 C#滚动文字
跑马灯的多种实现,解决你所有的跑马灯问题,快来看看
VB6.0实现窗口文字跑马灯-文字滚动效果,说明:这个文字滚动控件比较不错,滚动比较平滑,没有闪烁现象,支持左右水平、上下垂直滚动。【向左滚动样式一】是循环连续滚动,【向左滚动样式二】则滚动到左端时停止一下...
Android 实现水平、垂直方向文字跑马灯效果demo
drawMarqueeView.add(contentView: WQScrollLabel.createLabel(text: "我是跑马灯文字我是跑马灯文字我是跑马灯文字我是跑马灯文字", textColor: .cyan)) 3、开始跑 drawMarqueeView.startAnimation() 3、暂停 ...
textview显示跑马灯效果,使用的是继承的方法onDraw不停地绘制 优点: 1.文字长短不限哦 2.不用非得获取焦点哦