Android实现多个跑马灯效果,多个文本框TextView的跑马灯
一、新建一个Marquee类继承TextView
由于默认的跑马灯效果是需要TextView的方法isFocused为true的时候才会跑动的,而默认时,只有一个TextView处于focused状态,解决办法就是让所有要实现跑马灯效果的TextView都处于focused状态,因此要改写TextView类。于是新建一个Marquee类:
package org.shuxiang.test;
import android.content.Context;
import android.graphics.Rect;
import android.util.AttributeSet;
import android.widget.TextView;
public class Marquee extends TextView
{
public Marquee(Context context, AttributeSet attrs)
{
super(context, attrs);
}
@Override
protected void onFocusChanged(boolean focused, int direction, Rect previouslyFocusedRect)
{
// TODO Auto-generated method stub
if(focused) super.onFocusChanged(focused, direction, previouslyFocusedRect);
}
@Override
public void onWindowFocusChanged(boolean hasWindowFocus)
{
// TODO Auto-generated method stub
if(hasWindowFocus) super.onWindowFocusChanged(hasWindowFocus);
}
@Override
public boolean isFocused()
{
return true;
}
}
二、布局文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#ffffff"
android:orientation="vertical" >
<LinearLayout android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<org.shuxiang.test.Marquee android:id="@+id/pmd1"
android:layout_width="200dip"
android:layout_height="wrap_content"
android:layout_marginLeft="10dip"
android:layout_marginRight="10dip"
android:clickable="true"
android:ellipsize="marquee"
android:focusable="false"
android:focusableInTouchMode="true"
android:marqueeRepeatLimit="marquee_forever"
android:scrollHorizontally="true"
android:text="跑马灯文字1跑马灯文字1跑马灯文字1跑马灯文字1" />
<org.shuxiang.test.Marquee android:id="@+id/pmd2"
android:layout_width="200dip"
android:layout_height="wrap_content"
android:layout_marginLeft="10dip"
android:layout_marginRight="10dip"
android:clickable="true"
android:ellipsize="marquee"
android:focusable="true"
android:focusableInTouchMode="true"
android:marqueeRepeatLimit="marquee_forever"
android:scrollHorizontally="true"
android:text="这里是第2个跑马灯噢!这里是第2个跑马灯噢!这里是第2个跑马灯噢!" />
<org.shuxiang.test.Marquee android:id="@+id/pmd3"
android:layout_width="200dip"
android:layout_height="wrap_content"
android:layout_marginLeft="10dip"
android:layout_marginRight="10dip"
android:clickable="true"
android:ellipsize="marquee"
android:focusable="true"
android:focusableInTouchMode="true"
android:marqueeRepeatLimit="marquee_forever"
android:scrollHorizontally="true"
android:text="》》》第3个跑马灯》》》第3个跑马灯》》》第3个跑马灯" />
</LinearLayout>
</LinearLayout>
三、调用布局文件显示:
package org.shuxiang.test;
import android.app.*;
import android.os.*;
public class MainActivity extends Activity
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}
分享到:
相关推荐
在Android开发中,为TextView添加跑马灯效果是一种常见的需求,它可以使得较长的文字在有限的空间内循环滚动显示,增加界面的动态感。本篇文章将详细讲解三种实现TextView跑马灯效果的方法。 ### 1. 使用`ellipsize...
实现TextView的跑马灯效果主要涉及到两个关键属性:`android:singleLine`和`android:ellipsize`。`android:singleLine`属性使得TextView只显示一行文本,超出部分会被隐藏;而`android:ellipsize`属性则定义了超出...
要实现TextView的跑马灯效果,通常需要结合Android的属性和自定义布局来完成。以下是详细步骤和相关知识点: 1. **设置Ellipsize属性**: TextView有一个名为`ellipsize`的属性,它允许我们在文本过长时添加省略号...
实现跑马灯效果的关键在于设置`TextView`的几个关键属性: 1. `android:ellipsize="marquee"`:这个属性告诉`TextView`使用跑马灯模式来截断文本。默认情况下,如果文本太长,`TextView`会在末尾添加省略号。但设置...
总结来说,实现Android TextView无焦点的跑马灯和水平滚动效果,主要涉及以下几个步骤:设置`singleLine`(或`maxLines`)、`ellipsize`、`scrollHorizontally`属性,以及在代码中调用`setMovementMethod`和`...
综上所述,这个"Android ListView,TextView跑马灯Demo"展示了如何在ListView的每一项中实现TextView的跑马灯效果。通过正确设置TextView的属性和ListView的焦点管理,我们可以在应用中创建出动态、吸引人的UI元素,...
首先,要实现TextView的跑马灯效果,我们需要在XML布局文件中设置`android:singleLine="true"`(对于API 26及以上版本,需使用`android:maxLines="1"`)和`android:ellipsize="marquee"`。这将使TextView单行显示,...
- 如果布局中有多个`TextView`设置了跑马灯效果,一次只能有一个能生效,因为Android系统一次只允许一个View拥有焦点。 4. **优化** - 为了提升用户体验,可以考虑添加动画效果,比如渐入渐出,使得滚动更自然。 ...
本教程主要围绕如何在Android中使用`TextView` 实现跑马灯效果展开。首先,我们需要了解`TextView` 的基本属性和设置方法。在XML布局文件中,我们可以这样创建一个`TextView`: ```xml <TextView android:id="@+id...
本示例是关于如何在Android应用中完美实现多个`TextView`的跑马灯效果,并同时添加每个`TextView`的点击事件,通过布局移动来实现这一功能。 一、`TextView`的跑马灯效果实现 1. **属性设置**:首先,我们需要在...
总结来说,"多个跑马灯效果 demo"是一个关于Android开发的实例,展示了如何在同一个界面上实现多个TextView的跑马灯效果。通过理解和实践这个示例,开发者可以提升对TextView特性和Android UI动态效果的掌握,进一步...
综上所述,"老罗视频代码textview跑马灯效果"主要涉及的是Android中TextView的跑马灯效果实现,包括XML属性配置、代码逻辑设置以及可能遇到的问题和解决策略。通过理解这些知识点,开发者可以灵活地在自己的应用中...
"android自定义横向跑马灯TextView"就是一个典型的示例,它允许文字在一个视图内不断滚动,模拟LED显示屏上的跑马灯效果。这种效果通常用于显示通知、提示信息或者标题,即使只有一个字符也能实现滚动。 跑马灯效果...
- 当屏幕中多个TextView使用跑马灯效果时,只有一个能同时滚动,其他会暂停,直到当前焦点转移。 以上就是关于在Android中实现TextView跑马灯效果的主要技术点。在实际项目中,开发者可以根据需求调整这些设置,以...
例如,在 RelativeLayout 中,如果有多个 TextView,并且每个 TextView 都设置了跑马灯效果,那么只有第一个 TextView 会实现跑马灯效果。如下所示: ```xml <RelativeLayout xmlns:android=...
在Android开发中,"跑马灯"效果通常指的是TextView或者EditText的内容自动滚动,这种效果常见于通知栏消息、广告轮播等场景。标题提到的"android跑马灯效果,失去焦点也可以实现"意味着即使控件没有获取到焦点,仍然...
本资源"Android高级应用源码-跑马灯效果MarqueTextView textview 循环 跑马灯效果.zip"提供了一个实现这一效果的示例,主要涉及到自定义控件MarqueTextView的使用。下面将详细介绍跑马灯效果的原理以及如何通过...
实现TextView的跑马灯效果主要涉及到两个关键属性: 1. `ellipsize`: 这个属性用于设置当文本过长时如何进行省略。为了实现跑马灯效果,我们需要将其设置为 `marqueeRepeatLimit`,这是一个特殊值,表示文本应该...
总结一下,要实现“Android中继承TextView实现文字的跑马灯效果”,我们需要: 1. 创建一个新类,继承自TextView。 2. 重写关键方法,如onDraw(),onMeasure()和onLayout(),以实现文本滚动。 3. 使用定时器(如...
标题“textview(跑马灯效果)文字长短不限循环播放”所描述的就是这样一个功能,即在TextView中实现一个不受文本长度限制、可以自动循环滚动的跑马灯效果,而且这个效果不需要TextView获取焦点也能运行。...