TextView 跑马灯

首先,写一个类,让其继承自TextView:

重写focus方法,让TextView始终是focus。

public class MarqueeText extends TextView {
public MarqueeText(Context con) {
  super(con);
}

public MarqueeText(Context context, AttributeSet attrs) {
  super(context, attrs);
}
public MarqueeText(Context context, AttributeSet attrs, int defStyle) {
  super(context, attrs, defStyle);
}
@Override
public boolean isFocused() {
return true;
}
@Override
protected void onFocusChanged(boolean focused, int direction,
   Rect previouslyFocusedRect) {
}
}
<!-- 在布局文件中用自己写的控件只需要写类的全名就行,如下com.example.    这是包名,后面再跟类名就行了 -->
  <com.example.MarqueeText
    android:id="@+id/AMTV1"
    android:layout_width="400dip"
    android:layout_height="wrap_content"
    android:layout_marginLeft="80dip"
    android:textSize="25sp"
    android:textColor="@android:color/black"
    android:lines="1"
    android:focusable="true"
    android:focusableInTouchMode="true"
    android:scrollHorizontally="true"
    android:marqueeRepeatLimit="marquee_forever"
    android:ellipsize="marquee"
    android:background="#2FFFFFFF"
    android:text="这才是真正的文字跑马灯效果,文字移动速度,文字移动方向,文字移动的样式,动画等等……"
    />

关于MarqueeText类中为什么要复写onFocusChanged()方法,那是因为如果不写,在Textview 获得焦点后,再失去焦点时 字就会停止“跑”了,所以如果想让它一直跑下去就复写onFocusChanged(),并且里面什么也不做(主要是不能调用父类的方法)。

时间: 2024-08-26 06:48:49

TextView 跑马灯的相关文章

Android TextView跑马灯效果

TextView跑马灯简单效果 <!--简单示例--> <TextView android:text="@string/longWord" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/textView1" android:ellipsize="marquee&quo

真正的TextView跑马灯

android自带的跑马灯是必须在有焦点的情况下才会滚动,一旦失去焦点跑马灯就会失去效果. 现在我的做法是自定义TextView 并重写isFocused和onFocusChanged方法,设置focused为true,这样TextView就可以始终获取到焦点 亲测可用! 1.自定义TextView: import android.content.Context; import android.graphics.Rect; import android.util.AttributeSet; im

TextView跑马灯

TextView跑马灯 textView跑马灯实现:1.定义textView标签的4个属性:android:singleLine="true"//使其只能单行android:ellipsize="marquee"//去掉省略号android:focusable = "true"//使其循环android : focusableInTouchMode = "true"2.自定义类继承TextView:实现三个构造函数:复写isf

Third Day:正式编程第三天,学习实践内容TextView跑马灯、AutoCompleteTextView、multiAutoCompleteTextView以及ToggleButton、checkedBox、RadioButton等相关实践

2.针对Focused的TextView跑马灯(文字较多一行无法显示)效果 针对单个TextView的跑马灯效果,可直接在TextView控件参数中添加三个属性: android:singleLine="true"(一行显示会有省略号) android:ellipsize="marquee"(一行显示无省略号) android:focusable="true" android:focusableInTouchMode="true&quo

Android自学笔记之 多个TextView跑马灯的实现

textView跑马灯实现: 1.定义textView标签的4个属性: android:singleLine="true"//使其只能单行 android:ellipsize="marquee"//去掉省略号 android:focusable = "true"//使其循环 android : focusableInTouchMode = "true" 这样一个TextVIew就实现了跑马灯效果了,但是如果再用相同的写法写第二

Android TextView跑马灯

1 <TextView 2 android:layout_width="fill_parent" 3 android:layout_height="wrap_content" 4 android:layout_margin="20dp" 5 android:ellipsize="marquee" 6 android:focusable="true" 7 android:focusableInTouch

android在Gridview实现Textview跑马灯效果

默认是下面的属性添加TextView中: android:ellipsize="marquee" android:focusableInTouchMode="true" android:gravity="center" android:marqueeRepeatLimit="marquee_forever" android:scrollHorizontally="true" android:singleLi

Android textview 跑马灯 要加的属性

<TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:textColor="@android:color/white"  android:ellipsize="marquee"  android:focusable="true" android:singleLine = &q

Android自定义之TextView跑马灯的监听

TextView都有跑马灯的效果,如果说让你去监听跑马灯效果的执行,我觉得这个需求有点二了,但是也要实现. 思路: 1.自定义View  继承TextView   这种方法过于麻烦,只是监听一个跑马灯而已. 2.自定义SPan.简单好用,扩展TextView的功能. 关键代码如下: @Override public void draw(Canvas canvas, CharSequence text, int start, int end, float x, int top, int y, in

关于有多个Fragment中的textview跑马灯问题

============问题描述============ 一个activity里面有多个Fragment,1,2,3,4 其中fragment1中有2个textview,在第一次启动fragment1的时候跑马灯能正常跑马; 当跳转到其他fragment后,再回到fragment1的时候,跑马灯已经不跑马了? 关于这个是textview的焦点问题吗? 求大神解答,,,求大神解决.... ============解决方案1============ 应该不是,应该是生命周期的问题,你把跑马灯别写在o