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 实现卡片堆叠钱包管理动画效果

    Android 实现卡片堆叠钱包管理动画效果

    这篇文章主要介绍了Android 实现卡片堆叠钱包管理动画效果,实现思路是在动画回调中requestLayout 实现动画效果,用Bounds 对象记录每一个CardView 对象的初始位置,当前位置,运动目标位置,需要的朋友可以参考下
    2022-07-07
  • ImageView点击可变暗的实例代码(android代码技巧)

    ImageView点击可变暗的实例代码(android代码技巧)

    本文给大家分享一段实例代码给大家介绍ImageView点击可变暗的实例代码,非常不错,具有参考借鉴价值,需要的的朋友参考下吧
    2017-02-02
  • Android中SparseArray性能优化的使用方法

    Android中SparseArray性能优化的使用方法

    这篇文章主要为大家详细介绍了Android中SparseArray性能优化的使用方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-04-04
  • Android中自定义ScrollView代码实例

    Android中自定义ScrollView代码实例

    这篇文章主要介绍了Android中自定义ScrollView代码实例,本文直接给出实现代码,需要的朋友可以参考下
    2015-05-05
  • 利用Jetpack Compose绘制可爱的天气动画

    利用Jetpack Compose绘制可爱的天气动画

    Jetpack Compose是用于构建原生Android UI的现代工具包。Jetpack Compose使用更少的代码,强大的工具和直观的Kotlin API,简化并加速了Android上的UI开发。本文将利用Jetpack Compose绘制可爱的天气动画,感兴趣的可以了解一下
    2022-01-01
  • Android内存泄漏检测工具LeakCanary

    Android内存泄漏检测工具LeakCanary

    在Android的性能优化中,内存优化是必不可少的点,而内存优化最重要的一点就是解决内存泄漏的问题,在Android的内存泄漏分析工具也不少,比如PC端的有:AndroidStudio自带的Android Profiler、MAT等工具;手机端也有,就是我们今天要介绍的LeakCanary
    2023-04-04
  • Android用Fragment创建选项卡

    Android用Fragment创建选项卡

    这篇文章主要为大家详细介绍了Android用Fragment创建选项卡的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-10-10
  • Android在自定义类中实现自定义监听器方式

    Android在自定义类中实现自定义监听器方式

    这篇文章主要介绍了Android在自定义类中实现自定义监听器方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-03-03
  • Flutter开发Mac桌面应用实现自动提取生成视频字幕文件

    Flutter开发Mac桌面应用实现自动提取生成视频字幕文件

    这篇文章主要为大家介绍了Flutter开发Mac桌面应用实现自动提取生成视频字幕文件示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • Android播放音乐案例分享

    Android播放音乐案例分享

    这篇文章主要为大家分享了Android播放音乐案例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-09-09

最新评论