走马灯效果的代码,对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的文本内容即可.
分享到:
相关推荐
android:text="这是一段很长很长的文字,将会实现跑马灯效果" /> ``` 对应的Java代码设置: ```java TextView textView = findViewById(R.id.textView); textView.setMarqueeRepeatLimit(0); textView....
跑文字上下、左右滚动跑马灯效果,欢迎指正
在IT行业中,"跑马灯文字滚动"是一种常见的视觉效果,尤其在电子显示屏、网站、APP界面设计中经常被用到。它通过让文字或信息像霓虹灯一样连续滚动,来展示大量的信息或者吸引用户的注意力。这个效果通常用于有限的...
跑马灯效果,又称为滚动文字或走马灯,是指内容在一个固定区域内不断循环滚动,仿佛文字或图像在背景上移动。在Unity中,这种效果可以通过改变物体的位置或大小来实现。对于文本跑马灯,我们可以使Text组件的锚点...
在跑马灯效果中,QLabel通常被用来作为文字滚动的载体,通过改变其几何形状和文字位置来模拟跑马灯效果。 2. **QTimer**:Qt的定时器类QTimer是实现动态效果的关键。通过定时触发特定事件(如更新QLabel的位置),...
使用 vue 绑定style属性实现文字跑马灯效果。。。。。。。
超简单跑马灯文字滚屏效果,兼容IE、火狐
在Android开发中,"文字跑马灯效果"是一种常见的用户界面设计,主要用于显示较长的文本内容,当空间有限时,可以实现文本的自动循环滚动,给人一种动态的效果,类似传统电子显示屏上的跑马灯。这种效果通常用在通知...
跑马灯效果是一种常见的动态视觉展示方式,在UI设计和编程领域中广泛应用,尤其在移动应用、网站设计和游戏开发中尤为常见。这种效果通常表现为文字或图像在屏幕边缘循环滚动,仿佛是LED显示屏上的信息流动,因此...
**jQuery跑马灯效果**是一种常见的网页动态展示技术,它通过自动循环滚动或切换内容,如图片、文字或链接,来吸引用户注意力并提供信息。在网页设计中,这种效果通常用于广告展示、新闻滚动或者产品展示等场景。在本...
在Delphi中实现透明跑马灯效果涉及到图形用户界面(GUI)编程,特别是与控件、事件处理和自定义绘图相关的技术。跑马灯效果通常是指文本或图像在界面上按照某种方式循环滚动,而透明则涉及到控件的背景处理和颜色...
标题提到的"android跑马灯效果,失去焦点也可以实现"意味着即使控件没有获取到焦点,仍然可以保持滚动效果。这在设计用户界面时特别有用,因为有时候我们希望信息能够持续吸引用户的注意力,而不仅仅是当用户交互时...
跑马灯特效,又称为走马灯或者滚动字幕,...在实际开发中,可以根据具体需求调整代码,创造出更具吸引力的跑马灯效果。提供的文件"texiao3002_1560681147"可能是跑马灯特效的示例代码或资源,读者可以下载学习并实践。
在网页设计和开发中,"文字自动滚动"或"文字跑马灯效果"是一种常见的动态显示文本的方法。这种效果使得有限的空间内可以展示更多的信息,通常用于新闻标题、滚动公告或者广告横幅等场景。跑马灯效果通过不断滚动文本...
本文将深入探讨如何在C#中实现跑马灯效果,特别是滚动文字的实现。 首先,我们需要了解C#中实现滚动文字的基本元素。这通常涉及到Windows Forms或WPF框架中的控件。在Windows Forms中,我们可以使用`Label`控件配合...
"走马灯"或"跑马灯"是编程领域中对一种特殊文字动画效果的俗称,这种效果可以使文字像霓虹灯一样在界面上连续滚动或循环显示,从而吸引用户的注意力。 在PowerBuilder中实现这种效果,主要涉及到以下几个关键知识点...
标题“textview(跑马灯效果)文字长短不限循环播放”所描述的就是这样一个功能,即在TextView中实现一个不受文本长度限制、可以自动循环滚动的跑马灯效果,而且这个效果不需要TextView获取焦点也能运行。...
在本文中,我们将深入探讨如何使用C#编程语言制作文字滚动特效,也就是通常所说的跑马灯效果。这种特效常见于各种界面设计中,为信息展示提供了动态和吸引人的视觉体验。跑马灯不仅可以循环滚动文字,还能显示滚动...
跑马灯效果,又称滚动字幕或走马灯,是一种常见的UI设计元素,常用于显示过多信息无法一次性完全展示的情况,如网站公告、新闻标题滚动等。在IT领域,跑马灯效果可以通过多种编程语言和技术来实现。下面,我们将详细...
android:text="这是第一个跑马灯效果的文字" android:ellipsize="marquee" android:focusable="true" android:focusableInTouchMode="true" android:scrollHorizontally="true" android:singleLine="true" /> ...