`
410063005
  • 浏览: 179980 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

TextView跑马灯效果

 
阅读更多

参考: http://blog.csdn.net/sky181772733/article/details/7003125

 

在TextView中文本过长又需要单行显示(比如在ListView中)的情况,需要使用跑马灯效果。跑马灯效果是怎么实现的呢

 

1、首先看一个多行文本的效果

 布局如下

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world"
        android:textSize="28sp" />

 

2、将这个多行文本设置为单行

 布局如下

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:singleLine="true"
        android:text="@string/hello_world"
        android:textSize="28sp" />

 

3、使用marquee得到跑马灯效果

布局如下

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:ellipsize="marquee"
        android:singleLine="true"
        android:text="@string/hello_world"
        android:textSize="28sp" />

仍然没有跑马灯效果

 

4、跑马灯效果需要当前TextView能够获得焦点

    <TextView
        android:id="@+id/textView"
        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/hello_world"
        android:textSize="28sp" />

 可以实现跑马灯效果了

 

5、在不设置focusable和focusableInTouchMode属性为true的情况下,也可以在Java代码中选中TextView触发跑马灯效果

findViewById(R.id.textView).setSelected(true);

 

6、ListView中TextView要实现跑马灯效果,通过设置focusable和focusableInTouchMode为true不起作用,需要直接将TextView设置为selected,代码如下:

 

list_item布局

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin" >
    <TextView
        android:id="@+id/textView1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ellipsize="marquee"
        android:singleLine="true"
        android:textSize="28sp" />
</RelativeLayout>

 

Java代码

public class MainActivity extends ListActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                R.layout.list_item, R.id.textView1) {
            @Override
            public View getView(int position, View convertView,
                    ViewGroup parent) {
                View v = super.getView(position, convertView, parent);
                TextView tv = (TextView) v.findViewById(R.id.textView1);
                tv.setSelected(true);
                return v;
            }
        };
        adapter.add("超长的文本超长的文本超长的文本");
        getListView().setAdapter(adapter);
    }
}

(晕,全跑起来了。。。)

 

总结:

1、可以通过设置TextView的focusable和focusableInTouchMode为true,或者selected为true来触发长文本的跑马灯效果

2、上面跑马灯效果只有一次,如果需要无限次可设置android:marqueeRepeatLimit="marquee_forever"

3、ListView最好只有当前选中项才触发跑马灯效果,否则用户体验相当糟糕

 

 

 

 

 

 

  • 大小: 11.6 KB
  • 大小: 8.6 KB
  • 大小: 8.9 KB
  • 大小: 23.4 KB
分享到:
评论

相关推荐

    android TextView 跑马灯效果

    总的来说,Android的TextView跑马灯效果是通过结合XML布局属性和代码控制实现的,它为展示长文本提供了灵活的解决方案,特别是在有限的空间内。理解和掌握这个功能对于Android开发者来说非常有用,可以提升用户体验...

    textview跑马灯效果

    在TestPMD2这个项目中,可能包含了实现TextView跑马灯效果的相关代码示例或资源文件,你可以查阅这些文件来学习和理解具体实现方法。通过这些知识,你就能创建出具有跑马灯效果的TextView,为你的Android应用增添...

    实现textView 跑马灯效果

    通过以上步骤,我们可以实现一个基本的TextView跑马灯效果。如果要实现更复杂的滚动效果,例如垂直滚动或自定义动画,可能需要使用其他技术,如自定义ViewGroup或使用第三方库。在实际开发中,根据项目需求选择最...

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

    以上就是关于在Android中实现TextView跑马灯效果的主要技术点。在实际项目中,开发者可以根据需求调整这些设置,以达到理想的跑马灯滚动效果。文件"newZx1"可能包含了一个示例项目或代码片段,用于演示如何实现这一...

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

    本篇文章将详细讲解三种实现TextView跑马灯效果的方法。 ### 1. 使用`ellipsize`属性 #### 1.1 XML布局配置 首先,在XML布局文件中,可以通过设置`ellipsize`属性为`marquee`来开启跑马灯效果。同时,`singleLine...

    老罗视频代码textview跑马灯效果

    综上所述,"老罗视频代码textview跑马灯效果"主要涉及的是Android中TextView的跑马灯效果实现,包括XML属性配置、代码逻辑设置以及可能遇到的问题和解决策略。通过理解这些知识点,开发者可以灵活地在自己的应用中...

    TextView跑马灯效果2

    【标题】:“TextView跑马灯效果2” 在Android开发中,TextView是我们常用的一个组件,用于显示文本信息。而“跑马灯”效果则是TextView的一种特殊显示方式,它可以使文本在达到TextView宽度边界后,继续从左侧滚动...

    自定义TextView跑马灯效果

    Android自带的跑马灯效果不太好控制,还必须要满足条件才能有效果,而且速度不受控制。前面我的博客中有一篇就是用Android自带的跑马灯效果的,但是基于不同的使用效果,这里在网上找到了一个更好的方法。沿用了作者...

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

    通过分析这些测试,开发者可以更好地理解和掌握在不同情况下的TextView跑马灯效果,以应对实际开发中的各种需求。 总之,实现TextView的跑马灯效果需要注意焦点、宽度、延迟启动、嵌套视图等因素。通过对这些问题的...

    Android自定义TextView跑马灯效果

    "Android自定义TextView跑马灯效果" Android 自定义TextView跑马灯效果是指在 Android 平台上通过自定义TextView实现跑马灯滚动效果。下面是关于Android自定义TextView跑马灯效果的知识点: 1. TextView 的跑马灯...

    android TextView跑马灯

    以上就是关于Android中TextView跑马灯效果的基本介绍和实现方法。通过合理设置属性和编写适当的代码,我们可以创建出满足需求的跑马灯效果。同时,自定义的MarqueeTextView可能会提供更丰富的定制选项,以适应各种...

    特效-textView跑马灯

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

    使用TextView实现跑马灯效果

    本教程主要围绕如何在Android中使用`TextView` 实现跑马灯效果展开。首先,我们需要了解`TextView` 的基本属性和设置方法。在XML布局文件中,我们可以这样创建一个`TextView`: ```xml &lt;TextView android:id="@+id...

    textview(跑马灯效果)文字长短不限循环播放

    标题“textview(跑马灯效果)文字长短不限循环播放”所描述的就是这样一个功能,即在TextView中实现一个不受文本长度限制、可以自动循环滚动的跑马灯效果,而且这个效果不需要TextView获取焦点也能运行。...

    Android自定义控件--1(TextView跑马灯效果)

    本篇文章将探讨如何创建一个具有跑马灯效果的自定义TextView,即文字在视图范围内不断滚动,形成循环展示的效果。我们将深入理解其背后的实现原理,并通过源码分析来掌握自定义控件的开发方法。 首先,我们需要了解...

    Android ListView,TextView跑马灯Demo

    综上所述,这个"Android ListView,TextView跑马灯Demo"展示了如何在ListView的每一项中实现TextView的跑马灯效果。通过正确设置TextView的属性和ListView的焦点管理,我们可以在应用中创建出动态、吸引人的UI元素,...

    TextView循环改变大小的跑马灯效果

    在Android开发中,"TextView循环改变大小的跑马灯效果"是一种常见的动态UI设计,它可以使文本在TextView中持续滚动并动态改变大小,营造出引人注目的视觉体验。跑马灯效果通常用于显示较长的文本,当文本无法完全...

    Android TextView跑马灯效果实现方法

    本文将详细介绍如何在Android中实现TextView的跑马灯效果。 首先,跑马灯效果的实现主要依赖于两个关键属性:`ellipsize`和`marqueeRepeatLimit`。这两个属性需要在XML布局文件中设置。`ellipsize`属性定义了当文本...

    Android使用TextView跑马灯效果

    【Android使用TextView跑马灯效果】是指在Android开发中,如何让TextView实现一种文本内容从左往右自动滚动显示的效果,通常用于展示超出单行显示范围的文本。这种效果被称为跑马灯效果,常见于电视应用中,用来突出...

Global site tag (gtag.js) - Google Analytics