美文网首页Weli收藏的文章AndroidAndroid收藏集实用知识
Android文字轮播~可垂直可水平跑马灯

Android文字轮播~可垂直可水平跑马灯

作者: 程序猿在广东 | 来源:发表于2018-04-05 20:50 被阅读338次

    前言:

    现在的绝大数APP特别是类似淘宝京东等这些大型APP都有文字轮播界面,实现循环轮播多个广告词等功能;这种空间俗称“跑马灯”,而TextBannerView已经实现了可垂直跑、可水平跑的跑马灯了。

    效果图

    textbanner.gif

    Download Apk

    源码下载(欢迎star):GitHub

    Attributes属性(TextBannerView布局文件中调用)

    Attributes forma describe
    setInterval integer 文字切换时间间隔,默认3000
    setAnimDuration integer 动画持续时间,默认1500
    setTextSize dimension 设置文字尺寸
    setTextColor color 设置文字颜色,默认黑色
    setSingleLine boolean 是否为显示单行
    setGravity 文字显示位置,默认左边居中;可设置left、center、right
    setDirection 文字轮播方向,默认水平从右到左轮播:right_to_left;还可以设置left_to_right(从左到右轮播)、bottom_to_top(从底部到顶部轮播)、top_to_bottom(从顶部到底部轮播)

    方法

    方法名 描述 版本限制
    setDatas(List datas) 设置数据,类型:List
    startViewAnimator() 设置开始文字切换(默认自动)
    stopViewAnimator() 设置暂停文字切换
    setItemOnClickListener(listener) 设置点击监听事件回调
    setDatasWithDrawableIcon() 设置带图标的数据;第一个参数:数据 。第二参数:drawable. 第三参数drawable尺寸。第四参数图标位置(仅支持Gravity.LEFT、Gravity.TOP、Gravity.RIGHT、Gravity.BOTTOM) 1.0.2开始

    使用步骤

    Step 1.依赖TextBannerView

    Gradle

    dependencies{
        compile 'com.superluo:textbannerview:1.0.2'  //最新版本
    }
    

    或者引用本地lib

    compile project(':textbannerlibrary')
    

    Maven

    <dependency>
      <groupId>com.superluo</groupId>
      <artifactId>textbannerview</artifactId>
      <version>1.0.2</version>
      <type>pom</type>
    </dependency>
    

    Step 2.在布局文件中添加TextBannerView,可以设置自定义属性

    <com.superluo.textbannerlibrary.TextBannerView
            android:id="@+id/tv_banner"
            android:layout_width="match_parent"
            android:layout_height="38dp"
            android:background="#cc8ac6"
            app:setGravity="right"
            app:setTextColor="#fff"/>
    

    Step 3.在Activity或者Fragment中配置TextBannerView

    //初始化TextBannerView
    TextBannerView tvBanner = (TextBannerView) findViewById(R.id.tv_banner);
    
    //设置数据
    List<String> list = new ArrayList<>();
    
    list.add("学好Java、Android、C#、C、ios、html+css+js");
    list.add("走遍天下都不怕!!!!!");
    list.add("不是我吹,就怕你做不到,哈哈");
    list.add("superluo");
    list.add("你是最棒的,奔跑吧孩子!");
    
    //调用setDatas(List<String>)方法后,TextBannerView自动开始轮播
    //注意:此方法目前只接受List<String>类型
    tvBanner.setDatas(mList);
    
    Drawable drawable = getResources().getDrawable(R.mipmap.ic_launcher);
    /**这里可以设置带图标的数据(1.0.2新方法),比setDatas方法多了带图标参数;
    第一个参数:数据 。
    第二参数:drawable. 
    第三参数:drawable尺寸。
    第四参数:图标位置仅支持Gravity.LEFT、Gravity.TOP、Gravity.RIGHT、Gravity.BOTTOM
    */
    mTvBanner.setDatasWithDrawableIcon(mList,drawable,18, Gravity.LEFT);
    
    
    //设置TextBannerView点击监听事件,返回点击的data数据, 和position位置
    tvBanner.setItemOnClickListener(new ITextBannerItemClickListener() {
                @Override
                public void onItemClick(String data, int position) {
                    Log.i("点击了:",String.valueOf(position)+">>"+data);
                }
            });
    

    就这么简单!

    源码下载(欢迎star):GitHub

    相关文章

      网友评论

      • 18bdb88e65e5:有下划线选项吗?
        程序猿在广东:有的,请查看项目详情 https://github.com/zsml2016/TextBannerView
      • 3a85ad1551ed:我设置单行显示,但是当data里面一串字符串有很多内容时,它自动截取了后面一部分,还有一部分文字看不到了是怎么回事呢:worried:
        程序猿在广东:设置了单行 如果文字超出屏幕宽度,应该是不会显示多余的,可以缩短点。我最近有点忙,或者有什么好的建议:smile:
      • 37198cdff2c1:感觉这个很好用耶😆😆😆收割走
        程序猿在广东:@Magic_60ac 谢谢夸奖,共勉。

      本文标题:Android文字轮播~可垂直可水平跑马灯

      本文链接:https://www.haomeiwen.com/subject/gpbdhftx.html