android实现跑马灯效果

第一步:新建一个新项目,MarqueeTextView

首先为了观察到跑马灯效果,将要显示的文字极可能 写长。在strings.xml文件夹里面将

<string name="hello_world">hello_world</string>

修改为

<string name="hello_world">我的代码很长,真的很长,不行你看看,实际上是骗你的,逗比,hiahia~~~~</string>

默认情况下,显示文字会自动换行!为了实现跑马灯效果,首先要阻止其自动换行。通过使用singleLine属性来实现!

android:singleLine=”true”

如果其目的只是实现单行文字的跑马灯效果,可以仅仅再通过三个语句来实现!

android有个ellipsize属性,

android:ellipsize=”marquee”

android:focusable=”true”

android:focusableInTouchMode=”true”

通过上述代码可以实现单行文字的跑马灯效果。但是如果要实现多行文字的跑马灯效果,将上述代码重复书写,不能实现预想功能!因为在上述的focusable属性里面已经将焦点定义到第一行上!后续的得不到focus!可以通过新建一个class类来实现!

在src文件夹里面新建一个类命名为MarqueeText

package com.example.marqueetextviewdemo1;

import android.content.Context;
import android.util.AttributeSet;
import android.widget.TextView;

public class MarqueeText extends TextView{

    public MarqueeText(Context context) {
        super(context);
        // TODO Auto-generated constructor stub
    }

    public MarqueeText(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        // TODO Auto-generated constructor stub
    }

    public MarqueeText(Context context, AttributeSet attrs) {
        super(context, attrs);
        // TODO Auto-generated constructor stub
    }
    public boolean isFocused() {
        return true;
    }
}

然后再将main.xml文件里面的TextView全部修改为 包名+.+类名。

此次修改是为了将所有以这种方式定义的,都能获得focus,然后实现跑马灯的效果!

显示的效果如下:

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-02 14:50:08

android实现跑马灯效果的相关文章

Android TextView跑马灯效果

TextView跑马灯简单效果 <!--简单示例--> <TextView android:text="@string/longWord" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/textView1" android:ellipsize="marquee&quo

Android TextView 跑马灯效果

文本跑马灯必须设置的几个文本属性: android:marqueeRepeatLimit="marquee_forever"     设置跑马灯的次数:永久            android:ellipsize="marquee" 跑马灯方式             android:focusable="true" 获取焦点            android:singleLine="true" 单行          

Android TextView 跑马灯效果 - 2018年6月19日

第一步在布局中添加加粗部分代码: <TextView android:id="@+id/tv_company" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:ellipsize="marquee" android:marqueeRepeatLimit=&

Android中跑马灯效果

<com.randy.test1.self.MarqueeText android:id="@+id/btn1" android:layout_width="match_parent" android:layout_height="wrap_content" android:ellipsize="marquee" android:focusable="true" android:focusableIn

android 怎么实现跑马灯效果

自定义控件 FocusedTextView, 使android系统误以为它拥有焦点 1 public class FocusedTextView extends TextView { 2 public FocusedTextView(Context context, AttributeSet attrs, int defStyle) { 3 super(context, attrs, defStyle); 4 // TODO Auto-generated constructor stub 5 }

Android 开发笔记___textvieww__跑马灯效果

1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 android:orientation="vertical" android:layout_width="match_parent" 4 android:l

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

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

Android 跑马灯效果

<TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="5dp" android:text="我是一只小小小小鸟,怎么飞也飞不高啊,我有一个梦想,正在很努力地去实现" android:singleLine="true" android:ellipsize=&q

android在Gridview实现Textview跑马灯效果

默认是下面的属性添加TextView中: android:ellipsize="marquee" android:focusableInTouchMode="true" android:gravity="center" android:marqueeRepeatLimit="marquee_forever" android:scrollHorizontally="true" android:singleLi