TextView的单行滚动效果

首先,一个Textview可以很简单的实现,但是多个textview的实现方式就比较麻烦 .

一个Textview实现滚动的条件:

1、文本长度足够长

2、ellipsize="marquee"

3、focusable="true"  --- focusableInTouchMode="true"

当然,既然要滚动那就必须设置singleLine属性为true

    <TextView
        android:id="@+id/TextView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:ellipsize="marquee"
        android:focusable="true"
        android:focusableInTouchMode="true"
        android:singleLine="true"
        android:text="@string/text" />

多个textview的滚动实现:

我们在设置单个textview的时候会发现第三步设置了focusable,但是这个属性在对第二个textview设置的时候是无效的,即不能滚动了。所以我们需要自建一个textview

新建一个类继承自textview,重写构造函数,加入isFocused函数返回为true

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

    public MarqueeText(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }

    public MarqueeText(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

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

在使用textview中使用,甚至可以不再加入focusable="true"  --- focusableInTouchMode="true" 这两个属性

    <com.puzzle.lyxin.myapplication_textview.MarqueeText
        android:id="@+id/TextView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:ellipsize="marquee"
        android:singleLine="true"
        android:text="@string/text" />

另外,这样默认的重复滚动次数好像是3次,如果要一直滚动可以加入属性到xml中

  android:marqueeRepeatLimit="marquee_forever"

时间: 2024-11-10 15:36:18

TextView的单行滚动效果的相关文章

利用自定义可垂直滚动的Textview开发双色球滚动效果

先看效果图: 这里.我们自定义了一个Textview package com.example.myscroltextview.view; import java.util.ArrayList; import android.content.Context; import android.graphics.Canvas; import android.os.Handler; import android.os.Message; import android.util.AttributeSet; i

[androidUI特效]android中TextView中如何设置水平滚动效果

如何让文本实现走马灯的效果,下面就一起实现下吧~~~~~~ package irdc.ScrollingText; import android.app.Activity; import android.os.Bundle; import android.widget.TextView; public class ScrollingText extends Activity { public TextView t1; /** Called when the activity is first c

Android界面(1) 使用TextView实现跑马灯效果

方法一:(只能实现单个TextView的跑马灯效果)在TextView添加以下控件 android:singleLine="true"只能单行,超出的文字显示为"..." android:ellipsize="marquee"省略号没有,但没有跑马灯效果 android:focusable="true" android:focusableInTouchMode="true" 方法二:(可以实现多行TextV

在ListView或GridView 中使用到跑马灯滚动效果实现的问题。

一般情况下TextView实现跑马灯效果只要设置一些几个属性即可实现了. android:singleLine="true"//只显示单行 android:ellipsize="marquee"       //实现滚动效果 android:focusable="true"    //获取焦点,获取不到焦点是无法实现跑马灯滚动的 android:marqueeRepeatLimit="marquee_forever"  //

android:TextView实现文字走马灯效果(欺骗系统获取持久的焦点)

通常情况下我们想实现文字的走马灯效果需要在xml文件中这样设置 <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:singleLine="true" android:ellipsize="marquee" android:focusable="true" android:

ListView 中的TextView实现跑马灯效果

案例:怎么样在一个ListView中含有TextView的item中实现字母滚动呢.这个在一些特定的场合经常用得到.如下图,当焦点位于某个item的时候其内容就自动滚动显示 要实现这样的效果,废话不多说直接上代码: adapter对应的layout 对应的listView的layout 切记千万不要在TextView中加上android:focusable="true" view plain <LinearLayout android:orientation="vert

js实现新闻滚动-单行滚动或者多行滚动

注明:都是转载. 先说单行滚动: --------直接复制以下代码即可试验 转载http://www.3lian.com/edu/2011/06-30/4986.html----------- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xm

jquery 文字滚动大全 scroll 支持文字或图片 单行滚动 多行滚动 带按钮控制滚动

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-

信息滚动效果介绍

文字信息滚动是经常用到的效果!单独的marquee的html标签就已经实现了这种文字滚动的效果,但由于效果太单一,现在使用这种原始的效果已经很少了!下面我就介绍一些比较常见的文字滚动效果! 首先介绍的是原始的marquee标签实现的滚动的效果! 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-trans