实现纵向跑马灯

本文介绍了如何在Android应用中实现纵向跑马灯效果。首先,在build.gradle文件中添加必要的依赖,然后设置布局,利用app:mvDirection属性选择滚动方向,如'bottom_to_top'。在Activity中进行相应代码实现,同时解决可能出现的重影问题。
摘要由CSDN通过智能技术生成

通过在build.gradle添加依赖实现跑马灯效果

implementation 'com.sunfusheng:marqueeview:1.3.3'

添加完依赖以后,写布局注意布局中的app:mvDirection="bottom_to_top"可以选择从上到下还是从下到上

<com.sunfusheng.marqueeview.MarqueeView
        android:id="@+id/marqueeView"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        app:mvAnimDuration="1000"
        app:mvDirection="bottom_to_top"
        app:mvInterval="2000"
        app:mvTextColor="@color/colorAccent"
        app:mvTextSize="14sp"
        app:mvSingleLine="true"/>

在Aciivity中的代码

       //首先获取控件的id
        MarqueeView marqueeView = (MarqueeView) findViewById(R.id.marqueeView);
        
        //设置跑马灯的数据
        List<String> info = new ArrayList<>();
        
        info.add("新用户立减2元,首次使用银行卡支
俗名:垂直跑马灯;学名:垂直翻页公告使用Gradle:compile 'com.sunfusheng:marqueeview:1.1.0'属性Attribute 属性Description 描述mvAnimDuration一行文字动画执行时间mvInterval两行文字翻页时间间隔mvTextSize文字大小mvTextColor文字颜色mvGravity文字位置:left、center、rightmvSingleLine单行设置xml<com.sunfusheng.marqueeview.MarqueeView     android:id="@ id/marqueeView"     android:layout_width="match_parent"     android:layout_height="30dp"     app:mvAnimDuration="1000"     app:mvInterval="3000"     app:mvTextColor="@color/white"     app:mvTextSize="14sp"     app:mvSingleLine="true"/>设置列表数据MarqueeView marqueeView = (MarqueeView) findViewById(R.id.marqueeView); List<String> info = new ArrayList<>(); info.add("1. 大家好,我是孙福生。"); info.add("2. 欢迎大家关注我哦!"); info.add("3. GitHub帐号:sfsheng0322"); info.add("4. 新浪微博:孙福生微博"); info.add("5. 个人博客:sunfusheng.com"); info.add("6. 微信公众号:孙福生"); marqueeView.startWithList(info);设置字符串数据String notice = "心中有阳光,脚底有力量!心中有阳光,脚底有力量!心中有阳光,脚底有力量!"; marqueeView.startWithText(notice);设置事件监听marqueeView.setOnItemClickListener(new MarqueeView.OnItemClickListener() {     @Override     public void onItemClick(int position, TextView textView) {         Toast.makeText(getApplicationContext(), String.valueOf(marqueeView1.getPosition())   ". "   textView.getText(), Toast.LENGTH_SHORT).show();     } });
RecyclerViewAndroid开发中常用的列表控件,而纵向跑马灯是指文字或者图片以动画的方式自动滚动的效果。那么如何实现RecyclerView纵向跑马灯呢? 我们可以借助RecyclerView的LayoutManager来实现纵向跑马灯效果。首先,我们需要自定义一个继承自LinearLayoutManager的类,例如MarqueeLayoutManager。 在MarqueeLayoutManager中,我们需要重写LayoutManager的几个方法来实现纵向跑马灯效果。首先是onLayoutChildren()方法,在这个方法中,我们可以设置RecyclerView的布局参数,让列表中的item能够竖直放置,并逐个向下布局,从而实现纵向方向的滚动。 接着,我们需要重写scrollVerticallyBy()方法,在这个方法中,我们可以通过修改垂直滚动的偏移量来实现纵向跑马灯的效果。可以设置一个定时器,每隔一段时间让RecyclerView向下滚动一个item的高度。 最后,我们将自定义的MarqueeLayoutManager应用到RecyclerView中,并设置好Adapter,将数据传入,就可以实现纵向跑马灯效果了。 需要注意的是,为了实现无限滚动的效果,可以通过在Adapter中重写getItemCount()方法,将返回值设置为一个较大的数值,使得RecyclerView在滑动到列表底部时能够无缝地回到列表的顶部,从而实现循环滚动的效果。 以上就是使用RecyclerView实现纵向跑马灯效果的一种方法。通过自定义LayoutManager和适当的滚动方式,我们可以灵活地实现各种滚动效果,满足不同的需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值