自定义TextView使之具有跑马灯的效果

一、问题的引入

使用普通的textview跑马的效果,一开始没有焦点事件不会进行滚动,button有焦点事件,但是比较难看,因此需要自定一个TextView 一出生就有焦点

然后需要自定义一个textview

FocusedTextView.java

package com.xuliugen.mobilesafe.ui;

import android.content.Context;
import android.util.AttributeSet;
import android.view.ViewDebug.ExportedProperty;
import android.widget.TextView;

/**
 * 跑马的效果,一开始没有焦点事件不会进行滚动
 *
 * button有焦点事件,但是比较难看,因此需要自定一个TextView 一出生就有焦点
 *
 * @author xuliugen
 *
 */
public class FocusedTextView extends TextView {

    /**
     * 自定义的view需要以下几个构造方法
     *
     * @param context
     * @param attrs
     * @param defStyle
     */
    public FocusedTextView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
    }

    public FocusedTextView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public FocusedTextView(Context context) {
        super(context);
    }

    /**
     * 当前并没有焦点,我只是欺骗了Android系统
     */
    @Override
    @ExportedProperty(category = "focus")
    public boolean isFocused() {
        return true;
    }
}

那么我们引用的时候如下:

 <!-- 跑马灯的效果 :滚动的textView-->

    <com.xuliugen.mobilesafe.ui.FocusedTextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:ellipsize="marquee"
        android:singleLine="true"
        android:text="自定义TextView使之具有跑马灯的效果自定义TextView使之具有跑马灯的效果自定义TextView使之具有跑马灯的效果"
        android:textSize="18sp" />
时间: 2024-08-04 16:46:16

自定义TextView使之具有跑马灯的效果的相关文章

TextView来实现单行跑马灯的效果

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:ori

Android:TextView文字跑马灯的效果实现

解决TextView文字显示不全的问题. 简单设置跑马灯的效果: <TextView android:id="@+id/textView" android:layout_width="match_parent" android:layout_height="wrap_content" android:ellipsize="marquee" android:focusable="true" androi

android使用TextView实现跑马灯的效果(1)

android使用TextView实现跑马灯的效果 1.activity_main.xml <?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"

Android 文字自动滚动(跑马灯)效果的两种实现方法[特别好使]

有时候在xml中写的跑马灯效果不滚动:原因有以下 Android系统中TextView实现跑马灯效果,必须具备以下几个条件: 1.android:ellipsize=”marquee” 2.TextView必须单行显示,即内容必须超出TextView大小 3.TextView要获得焦点才能滚动(如果还不行,就要用自定义的TextView控件中重写isFocused()返回true就行[方法代码在下面的AlwaysMarqueeTextView 类],但是遇到新问题就是界面有多个这样的控件显示时当

在ListView或GridView 中使用到跑马灯滚动效果实现的问题。

一般情况下TextView实现跑马灯效果只要设置一些几个属性即可实现了. android:singleLine="true"//只显示单行 android:ellipsize="marquee"       //实现滚动效果 android:focusable="true"    //获取焦点,获取不到焦点是无法实现跑马灯滚动的 android:marqueeRepeatLimit="marquee_forever"  //

跑马灯小效果

今天在项目中需要一个图片跑马灯的效果 , 就用js写了一个 直接上代码吧: css代码: *{margin:0;padding:0;} .clearfix:after { content: ""; display: table; clear: both; } .clearfix: { *zoom: 1; } #div1{ width:1200px;height:200px;margin:100px auto;position:relative;background:red; overf

Android 自定义View实现竖直跑马灯效果

首先给出效果图 中间的色块是因为视频转成GIF造成的失真,自动忽略哈. 大家知道,横向的跑马灯android自带的TextView就可以实现,详情请百度[Android跑马灯效果].但是竖直的跑马灯效果原生Android是不支持的.网上也有很多网友实现了自定义的效果,但是我一贯是不喜欢看别人的代码,所以这篇博客的思路完全是我自己的想法哈. 首先,我们需要给自定义的控件梳理一下格局,如下图所示: 1.首先我们将控件分为三个区块,上面绿色部分为消失不可见的块,中间黑色部分为可见区域,下面红色部分为欲

Android TextView 横向滚动(跑马灯效果)

Android TextView 中当文字比较多时希望它横向滚动显示,下面是一种亲测可行的方法. 效果图: 1.自定义TextView,重写isFocused()方法返回true,让自定义TextView一直处于获取焦点状态. package com.example.shen.marqueedemo; import android.content.Context; import android.util.AttributeSet; import android.widget.TextView;

html跑马灯/走马灯效果

实现跑马灯的方法很多,其中最简单的是采用一句Html代码来实现,我们在需要出现跑马灯效果的地方插入"<marquee>滚动的文字</marquee>"语句,它的效果如下所示: 参数 用法介绍 behavior=scroll, slide, alternate 跑马方式:循环绕行,只跑一次就停住,来回往复运动 direction=left,right 跑马方向:从左向右,从右向左 loop=100 跑马次数:循环100次,如不写默认为一直循环 width=100%