Android TextView跑马灯设置 的 两种方法

文章目录

        • 1、在代码里 代码动态设计 (第一种)
          • 1)xml 文件
          • 2) 功能文件
        • 2、在 xml 文件 里配置 跑马灯 (第2种)
        • 3、实现一个 Activity 多个TextView 跑马灯效果
          • 1) 自定义的 MarqueeTextView 类
          • 2)、 xml 文件
          • 3)、功能文件 MainActivity

所谓跑马灯 就是 文本框里面的 文字超过了 ,文本框的 宽度 ,怎轮播显示。

1、在代码里 代码动态设计 (第一种)

1)xml 文件

2) 功能文件
     textView = (TextView) findViewById(R.id.text_id);
        
        textView.setMarqueeRepeatLimit(Integer.MAX_VALUE);
        textView.setFocusable(true);
        textView.setEllipsize(TextUtils.TruncateAt.MARQUEE);
        textView.setSingleLine();
        textView.setFocusableInTouchMode(true);
        textView.setHorizontallyScrolling(true);

2、在 xml 文件 里配置 跑马灯 (第2种)

    

3、实现一个 Activity 多个TextView 跑马灯效果

如果在同一个activity里需要使多 个textivew单行滚动显示,都设置了以上属性,系统不知道到底哪个textview获取了焦点,会造成冲突,只能有一个TextView 实现跑马灯。
如下:
Android TextView跑马灯设置 的 两种方法_第1张图片

所以,就得单独写一个MarqueeTextView extends TextView的方法,使每一个需要滚动显示的textview都要focusable为true,下面是继承TextView的MarqueeTextView类文件

1) 自定义的 MarqueeTextView 类
package com.example.lum.mytestword;

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

/**
 * Created by lum on 2019/1/15.
 */

@SuppressLint("AppCompatCustomView")
public class MarqueeTextView extends TextView {

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

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

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

    @Override
    public boolean isFocused() {
        // TODO Auto-generated method stub
        return true;
    }

}


2)、 xml 文件



    

    

    



3)、功能文件 MainActivity
package com.example.lum.mytestword;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.TextUtils;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

    private TextView textView,textViewTwo;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        textView = (TextView) findViewById(R.id.text_id);

        textView.setMarqueeRepeatLimit(Integer.MAX_VALUE);
        textView.setFocusable(true);
        textView.setEllipsize(TextUtils.TruncateAt.MARQUEE);
        textView.setSingleLine();
        textView.setFocusableInTouchMode(true);
        textView.setHorizontallyScrolling(true);


        textViewTwo = (TextView) findViewById(R.id.text_two);

        textViewTwo.setMarqueeRepeatLimit(Integer.MAX_VALUE);
        textViewTwo.setFocusable(true);
        textViewTwo.setEllipsize(TextUtils.TruncateAt.MARQUEE);
        textViewTwo.setSingleLine();
        textViewTwo.setFocusableInTouchMode(true);
        textViewTwo.setHorizontallyScrolling(true);


    }
}

效果展示:
Android TextView跑马灯设置 的 两种方法_第2张图片

你可能感兴趣的:(Android,基础入门)