`
zhifeiji512
  • 浏览: 119777 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Android:TextView 自动滚动(跑马灯)

阅读更多

 

参考文章:

  1. Android2.2 API 中文文档系列(1) —— TextView
  2. [Android1.5]TextView跑马灯效果
  3. addStatesFromChildren 和跑马灯
  4. TextView总是显示跑马灯效果

思想介绍:

TextView自带跑马灯的效果,需要设置一下TextView的属性,把显示模式改为“跑马灯”。设置滚动次数。
这些都还不够,因为TextView的跑马灯跑起来,需要此textView得到焦点。所以要想个办法解决一下,让他总是滚动。

简要步骤:

在包中新建一个类,继承TextView。重写isFocused方法,这个方法默认行为是,如果TextView获得焦点,方法返回true,失去焦点则返回false。跑马灯效果估计也是用这个方法判断是否获得焦点,所以把它的返回值始终设置为true。

示例1:
Java语言
AlwaysMarqueeTextView 类

public class AlwaysMarqueeTextView extends TextView {

public AlwaysMarqueeTextView(Context context) {
      super(context);
}

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

public AlwaysMarqueeTextView(Context context, AttributeSet attrs, int defStyle) {
      super(context, attrs, defStyle);
}

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

 

在布局XML文件中加入这么一个AlwaysMarqueeTextView,这个加入方法也是刚刚学的。

<com.examples.AlwaysMarqueeTextView
	android:id=“@+id/AMTV1″ 
	android:layout_width=“fill_parent”
	android:layout_height=“wrap_content” 
	android:lines=“1″
	android:focusable=“true” 
	android:focusableInTouchMode=“true”
	android:scrollHorizontally=“true” 
	android:marqueeRepeatLimit=“marquee_forever”
	android:ellipsize=“marquee” 
	android:background=“@android:color/transparent” />
ellipsize属性
设置当文字过长时,该控件该如何显示。有如下值设置:”start”—–省略号显示在开头;”end”——省略号显示在结尾;”middle”—-省略号显示在中间;”marquee” ——以跑马灯的方式显示(动画横向移动)
marqueeRepeatLimit属性
在ellipsize指定marquee的情况下,设置重复滚动的次数,当设置为marquee_forever时表示无限次。

focusable属性
自己猜测的,应该是能否获得焦点,同样focusableInTouchMode应该是滑动时能否获得焦点。

示例2:
组合View的问题:

XML语言: 组合View
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
	android:orientation="vertical" 
	android:gravity="center_vertical"
	android:background="@drawable/f_background" 
	android:layout_width="fill_parent"
	android:focusable="true" android:layout_height="50px">
	<TextView android:id="@+id/info_text" 
		android:focusable="true"
		android:layout_width="fill_parent" 
		android:layout_height="wrap_content"
		android:text="test marquee ... "
		android:textColor="@color/black"
		android:singleLine="true" 
		android:ellipsize="marquee"
		android:marqueeRepeatLimit="3"
		android:textSize="18sp" />
	<TextView android:id="@+id/date_texfocusablet" 
		android:layout_width="fill_parent"
		android:layout_height="wrap_content" 
		android:layout_gravity="bottom"
		android:textColor="@color/gray" 
		android:text="2011/04/01"
		android:textSize="12sp"/>
</LinearLayout >

 

    上面示例中2个TextView组合为一个View,由于设置了LinearLayout为focusable而TextView就没法取得焦点了,这样 这个TextView的跑马灯效果就显示不出来,就算你也设置TextView的 android:focusable= "true" 也是 没用的. 这个时候就要使用addStatesFromChildren 这个属性了,在LinearLayout中设置这个属性,然后设置TextView的focusable= "true" 就可以了.关于 addStatesFromChildren的说明:
Sets whether this ViewGroup's drawable states also include its children's drawable states.

 

 

分享到:
评论

相关推荐

    android textview 无焦点 跑马灯 水平滚动

    本篇文章将详细介绍如何在Android中实现TextView的无焦点跑马灯和水平滚动效果。 首先,我们需要理解TextView的基础属性。`android:singleLine`属性用于将文本限制为一行,`android:ellipsize`属性则控制当文本超出...

    TextView滚动,跑马灯效果终极解决方案

    "跑马灯"效果,又称为滚动效果,是指当TextView中的文本内容超过其显示区域时,文本会自动从一端滚动到另一端,形成一种循环滚动的视觉效果。这种效果通常用在通知栏、新闻标题或者广告横幅等场景。在本实验中,我们...

    Android垂直滚动TextView跑马灯Demo

    本示例"Android垂直滚动TextView跑马灯Demo"就是一种常见的UI特效,它主要用于显示大量的文本内容,尤其适用于展示滚动公告、新闻标题或者广告等内容。跑马灯效果在Android中通常是通过自定义View或者对现有控件进行...

    android TextView 跑马灯效果

    "跑马灯"效果,又称为滚动文字效果,是指当TextView中的文本长度超过控件宽度时,文本会从右向左自动循环滚动,就像跑马灯一样。这个效果在很多场景下都非常实用,比如通知栏消息、应用标题或者广告横幅等。 实现...

    Android自定义textview实现竖直滚动跑马灯效果

    Android 自定义 TextView 实现竖直滚动跑马灯效果 Android 自定义 TextView 实现竖直滚动跑马灯效果是 Android 开发中的一种常见需求。跑马灯效果指的是 TextView 中的文字可以水平或竖直滚动,达到拉动和显示大量...

    特效-textView跑马灯

    在Android开发中,"特效-textView跑马灯"是一种常见的UI动态效果,它通常用于显示滚动的文字信息,比如新闻标题或者广告标语。这种效果模仿了实际生活中的跑马灯,即文字在一个固定区域里循环滚动,给人一种连续不断...

    安卓跑马灯相关-TextView滚动跑马灯效果终极解决方案.rar

    总结一下,`安卓跑马灯相关-TextView滚动跑马灯效果终极解决方案.rar`这个压缩包提供的知识点主要涉及: 1. Android TextView的跑马灯效果实现,通过`android:singleLine`和`android:ellipsize`属性。 2. 如何在...

    android三种方式实现TextView跑马灯效果

    在Android开发中,为TextView添加跑马灯效果是一种常见的需求,它可以使得较长的文字在有限的空间内循环滚动显示,增加界面的动态感。本篇文章将详细讲解三种实现TextView跑马灯效果的方法。 ### 1. 使用`ellipsize...

    TextView 实现文字滚动播放效果效果(跑马灯)

    而“跑马灯”(Scrolling Text)效果则是`TextView`的一个特殊功能,它可以使超出`TextView`显示范围的文字自动从一端滚动到另一端,形成循环滚动的效果,常用于展示较长的标题或通知信息。下面我们将详细探讨如何...

    android垂直滚动的textview,仿跑马灯效果

    在Android开发中,实现一个垂直滚动的TextView以达到跑马灯效果是一项常见的需求。这种效果常见于各种信息展示,如公告、广告等,使得较长的文字能够在有限的空间内完整展示。以下将详细介绍如何在Android中创建这样...

    Android ListView,TextView跑马灯Demo

    而跑马灯(Marquee)效果则是TextView的一种特殊滚动显示方式,通常用于显示过长文本时,使其能在有限的空间内循环滚动。本Demo重点是实现ListView的每一项都有TextView的跑马灯效果。 首先,我们来看TextView的...

    android自定义横向跑马灯TextView(两种,即使一个字符也能跑马灯)

    "android自定义横向跑马灯TextView"就是一个典型的示例,它允许文字在一个视图内不断滚动,模拟LED显示屏上的跑马灯效果。这种效果通常用于显示通知、提示信息或者标题,即使只有一个字符也能实现滚动。 跑马灯效果...

    androidTextView实现跑马灯的效果

    5. `android:scrollHorizontally="true"`:此属性指示`TextView`应水平滚动文本,这是跑马灯效果的主要方向。 6. `android:text`:当然,别忘了设置要显示的文本内容。 以下是一个完整的`XML`布局代码示例,展示了...

    文字跑马灯.txt_bitejdi_textview实现简单跑马灯_

    - 跑马灯效果只有在TextView获得焦点时才会启动,因此可能需要在布局中设置自动获取焦点,或者在代码中手动设置`textView.requestFocus();` - 如果文本内容太短,可能无法触发跑马灯效果,确保文本长度超过屏幕...

    textview两种跑马灯的实现

    在Android开发中,TextView是用于显示文本的基本...以上就是Android中TextView跑马灯的两种实现方式,无论是使用内置属性还是自定义动画,都能实现文本的循环滚动效果。在实际开发中,可以根据项目需求选择合适的方法。

    android TextView跑马灯

    5. 还有一个特殊情况,如果TextView在XML布局文件中设置了 `android:focusable="false"` 或 `android:focusableInTouchMode="false"`,那么跑马灯可能不会启动,因为TextView需要获取焦点才能启动滚动。所以,确保这...

    简单的textview 跑马灯效果 可直接使用

    "跑马灯效果"(Marquee)是TextView的一种特殊滚动效果,它允许文本在TextView的边界内无限循环滚动,给人一种连续移动的视觉效果。 实现TextView的跑马灯效果主要涉及到以下知识点: 1. **属性设置**: - `...

    TextView跑马灯、闪烁和跳动动画

    跑马灯,又称为滚动文字,是指当TextView中的文本内容超出其显示区域时,文本会自动从一端滚动到另一端,仿佛在不断循环移动。实现这个效果,可以通过设置`android:singleLine="true"`和`android:ellipsize="marquee...

    文字自动滚动TextView(长度不够也可以)

    在某些场景下,比如制作通知栏或者广告横幅,开发者可能希望实现一个像霓虹灯那样循环滚动的效果,这在Android中称为“跑马灯”效果。标题中的“文字自动滚动TextView(长度不够也可以)”就是指即使文字内容不足以...

    实现textView 跑马灯效果

    要实现TextView的跑马灯效果,通常需要结合Android的属性和自定义布局来完成。以下是详细步骤和相关知识点: 1. **设置Ellipsize属性**: TextView有一个名为`ellipsize`的属性,它允许我们在文本过长时添加省略号...

Global site tag (gtag.js) - Google Analytics