码迷,mamicode.com
首页 > 移动开发 > 详细

android实现跑马灯效果

时间:2015-08-11 10:10:53      阅读:154      评论:0      收藏:0      [点我收藏+]

标签: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,然后实现跑马灯的效果!

显示的效果如下:
技术分享

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

android实现跑马灯效果

标签:android   跑马灯   

原文地址:http://blog.csdn.net/ice_alone/article/details/47414579

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!