Android实现跑马灯效果的两种简单方式

 更新时间:2021年07月02日 11:49:42   作者:计蒙不吃鱼  
这篇文章主要给大家介绍了关于Android实现跑马灯的两种简单方式,文中介绍了两种方法,分别说了每个方法的优缺点,需要的朋友可以选择性使用,下面来一起看看吧

第一种:较简单,但是局限性强,貌似只能从右至左跑,且有一个要求:字体的长度需大于控件的长度, 不然没有效果,重要的代码为深色部分,具体代码在文章最后。

重要代码的介绍

1. android:ellipsize=“marquee” 设置为跑马灯的显示方式

2. android:focusable=“true” 获得焦点

3. android:focusableInTouchMode=“true” 可以通过触动来获取焦点

4. android:marqueeRepeatLimit=“marquee_forever” 设置重复的次数

5. android:singleLine=“true” 单行显示

第二种:利用定时器改变 padding 的值来起到跑马灯的效果,各个方向都可以,无第一种的要求,主要起到作用的为 setPadding 方法,在最后记得要关闭定时器!

1. 布局文件

2. 实现功能的代码

再次强调记得关掉定时器!

具体代码如下:

第一种方法:

<TextView
    android:text="班里发生什么了?不知道,先起哄再说。"
    android:ellipsize="marquee"
    android:focusable="true"
    android:focusableInTouchMode="true"
    android:marqueeRepeatLimit="marquee_forever"
    android:singleLine="true"
    android:layout_width="200dp"
    android:layout_height="wrap_content" />

第二种方法:

布局文件:

<TextView
        android:id="@+id/mytext"
        android:gravity="center_vertical"
        android:text="班里发生什么了?不知道,先起哄再说。"
        android:layout_width="match_parent"
        android:layout_height="40dp" />

Java 文件:

public class MainActivity extends Activity {


    private TextView mytext;
    private Handler handler;
    private Runnable runnable;
    private int theroll=0;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();
        marquee();//记得调用方法

    }


    private void initView() {
        //实例化
        mytext = (TextView) findViewById(R.id.mytext);
    }
    //滚动的具体代码
    private void marquee(){
      handler=new Handler();
      runnable=new Runnable() {
          @Override
          public void run() {
          if (theroll>80){
              theroll=-80;
          }
          theroll=theroll+2;
          //通过设置下面的四个参数可以起到控制滚动方向的作用
          mytext.setPadding(theroll,0,0,0);
          handler.postDelayed(this,100);//可调整速度
          }
      };
      handler.postDelayed(runnable,0);
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        //在最后记得要关掉定时器
        handler.removeCallbacks(runnable);
    }
}

总结

到此这篇关于Android实现跑马灯的文章就介绍到这了,更多相关Android实现跑马灯内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Android使用vcard文件的方法简单实例

    Android使用vcard文件的方法简单实例

    这篇文章主要介绍了Android使用vcard文件的方法,结合实例形式分析了Android针对vcard文件的打开、读取、写入等相关操作技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2016-06-06
  • 使用 Lambda 取代 Android 中的匿名类

    使用 Lambda 取代 Android 中的匿名类

    本文主要介绍使用Lambda 取代 Android 中的匿名类的资料,这里这里了相关资料及简单示例代码帮助大家学习参考此部分的知识,有需要的小伙伴可以参考下
    2016-09-09
  • Android 获取应用缓存大小与清除缓存的方法

    Android 获取应用缓存大小与清除缓存的方法

    今天小编就为大家分享一篇Android 获取应用缓存大小与清除缓存的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-08-08
  • Android 矩阵ColorMatrix

    Android 矩阵ColorMatrix

    这篇文章主要介绍了Android 矩阵ColorMatrix的相关资料,需要的朋友可以参考下
    2016-10-10
  • Android SD卡上文件操作及记录日志操作实例分析

    Android SD卡上文件操作及记录日志操作实例分析

    这篇文章主要介绍了Android SD卡上文件操作及记录日志操作的方法,涉及Android针对SD卡与文件操作的相关技巧,需要的朋友可以参考下
    2016-01-01
  • Kotlin扩展方法超详细介绍

    Kotlin扩展方法超详细介绍

    Kotlin 可以为一个不能修改的或来自第三方库中的类编写一个新的函数。 这个新增的函数就像那个原始类本来就有的函数一样,可以用普通的方法调用,这种机制的函数称为扩展函数
    2022-09-09
  • Android用webView包装WebAPP方法

    Android用webView包装WebAPP方法

    本篇文章通过流程讲解给大家详细介绍了Android用webView包装WebAPP的方法以及需要注意的地方,需要的朋友参考学习下。
    2018-02-02
  • Android编程实现加载等待ProgressDialog的方法

    Android编程实现加载等待ProgressDialog的方法

    这篇文章主要介绍了Android编程实现加载等待ProgressDialog的方法,实例分析了Android中加载等待类ProgressDialog的具体使用方法,需要的朋友可以参考下
    2015-12-12
  • Android 多种dialog的实现方法(推荐)

    Android 多种dialog的实现方法(推荐)

    下面小编就为大家分享一篇Android 多种dialog的实现方法(推荐),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-01-01
  • Android开发之组件GridView简单使用方法示例

    Android开发之组件GridView简单使用方法示例

    这篇文章主要介绍了Android开发之组件GridView简单使用方法,涉及Android GridView组件图片浏览及保存图片等相关操作技巧,需要的朋友可以参考下
    2019-03-03

最新评论