TextView实现文字滚动需要以下几个要点:
1.文字长度长于可显示范围:android:singleLine="true"
2.设置可滚到,或显示样式:android:ellipsize="marquee"
3.TextView只有在获取焦点后才会滚动显示隐藏文字,因此需要在包中新建一个类,继承TextView。重写isFocused方法,这个方法默认行为是,如果TextView获得焦点,方法返回true,失去焦点则返回false。跑马灯效果估计也是用这个方法判断是否获得焦点,所以把它的返回值始终设置为true。
以下转自他人:
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,这个加入方法也是刚刚学的。
XML语言: layout.xml
<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应该是滑动时能否获得焦点。
组合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_text”
android:layout_width =“fill_parent”
android:layout_height =“wrap_content”
android:layout_gravity =“bottom”
android:textColor =“@color/gray”
android:text =“2010/05/28″
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.
From: http://hmifly.blog.163.com/blog/static/1285835072011322352406/
分享到:
相关推荐
"android自定义横向跑马灯TextView"就是一个典型的示例,它允许文字在一个视图内不断滚动,模拟LED显示屏上的跑马灯效果。这种效果通常用于显示通知、提示信息或者标题,即使只有一个字符也能实现滚动。 跑马灯效果...
而“跑马灯”(Scrolling Text)效果则是`TextView`的一个特殊功能,它可以使超出`TextView`显示范围的文字自动从一端滚动到另一端,形成循环滚动的效果,常用于展示较长的标题或通知信息。下面我们将详细探讨如何...
4. `ellipsize="marquee"`:启用跑马灯效果,文本会在TextView内横向滚动,适用于单行显示且需要突出滚动效果的场景。 对于跑马灯效果,还需要配合以下属性: - `android:singleLine="true"`:设置为单行显示,以便...
`TextView`是Android中用于显示文本的基本控件,它支持多种样式和行为,其中之一就是跑马灯滚动。 1. **XML布局**: 在你的布局XML文件中,创建一个`TextView`并设置以下属性来开启跑马灯效果: ```xml ...
跑马灯效果能够使文本在屏幕宽度限制下横向滚动,从而达到一种视觉上的流动感。 #### 解决方案 为了实现这一功能,我们需要对`TextView`进行一定的设置与自定义处理。 #### 步骤一:基础设置 首先,在XML布局文件...
当设置这些属性时,`TextView`会自动启用横向滚动,即跑马灯效果。但是,这种默认的跑马灯并不支持速度控制,且在文本过长时可能无法正确显示。 2. **自定义View** 为了达到控制速度和处理长文本的需求,开发者...
在Android开发中,跑马灯效果是一种常见的动态展示方式,常用于新闻滚动、广告轮播等场景。本篇文章将深入探讨如何借助RecyclerView的思想快速实现这一功能。RecyclerView是Android SDK提供的一种高效、可重用的视图...
虽然Android SDK原生支持TextView的水平滚动(横向跑马灯效果),但并未提供直接的方法来实现垂直滚动。在面对这种需求时,开发者需要自定义解决方案。 首先,我们来看一下XML布局文件`textscroll.xml`的部分配置。...
跑马灯效果是指当TextView中的文本超过其宽度时,文本会像跑马灯一样从一端滚动到另一端。要实现这种效果,可以通过设置`android:ellipsize`属性为`marquee`,并配合其他属性来完成。在XML布局文件中,我们需要添加...
跑马灯效果是一种常见的文本滚动展示方式,在Android开发中可以通过TextView的一些特定属性来实现这一效果。 - **`android:ellipsize` 属性**:用于控制当文字长度超出TextView宽度时的显示方式。 - `"start"`:...
首先,我们需要理解Android自带的`TextView`控件有一个名为`android:singleLine`(API 26后改为`android:maxLines="1"`)的属性,当设置该属性并且文本过长时,可以启用横向滚动效果。但是,这种滚动方式并不完全...
- **跑马灯效果**:跑马灯(Marquee)源于传统的电子显示屏,其特点是文字或图像从一端向另一端连续滚动。在数字领域,这种效果通常通过CSS3的`marquee`属性或者JavaScript实现。在HTML中,`<marquee>`标签可以创建...
- `marquee`:以跑马灯的方式显示(动画横向移动)。 12. **android:freezesText** - **描述**:设置是否保存文本的内容以及光标的位置。 13. **android:gravity** - **描述**:设置文本位置,如居中显示等。...
跑马灯效果,通常在电子显示屏、LED灯带或软件界面上用来展示滚动文本或信息,是一种常见的动态显示技术。在安卓开发中,实现跑马灯效果可以为应用增添视觉吸引力,尤其适用于通知提示或者标题展示。这个"安卓跑马灯...
在XML布局文件中,可以通过添加以下属性来启用跑马灯: ```xml <TextView android:id="@+id/my_marquee_text_view" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text=...
在做android 应用的开发的时候,横向滚动或者要做出跑马灯的效果很简单,textview本身的属性就支持,只要设置准确就会滚动,开发起来比较简单,但是textview 不支持垂直滚动,那么垂直滚动就需要自己来实现了,很多...
这种效果源于早期霓虹灯广告中的滚动文字展示,随着时间的推移,"跑马灯"这一概念逐渐被引入到数字媒体中。在IT行业中,跑马灯效果通常是指文本或图像在界面上连续滚动或循环播放的现象,以此吸引用户的注意力或传递...
1,文字横向滚动只是直接用TextView实现跑马灯效果 2,文字竖向滚动实际上是在布局中加入了两个TextView使用,使用句柄控制显示和隐藏,加上动画实现的竖向滚动。 3,竖向的View滚动可实现类似淘宝首页的效果,通过...
1、文字横向滚动只是直接用TextView实现跑马灯效果 2、文字竖向滚动实际上是在布局中加入了两个TextView使用,使用handler控制显示和隐藏,加上动画实现的竖向滚动。 3、竖向的View滚动可实现类似淘宝首页的效果,...
无聊写的自定义View的Demo,进阶学习用WaveView 波浪形进度条刮奖 抽奖 券DragHelperView 使用Demo自定义DrawerLayout自定义下拉的DrawerLayout自定义渐变颜色的TextView自定义跑马灯 设置横向滚动速度 纵向滚动速度...