TextBannerView

Introduction: 一个 Android 文字轮播控件,又名跑马灯;已经实现了可垂直跑、可水平跑的跑马灯,几行代码集成!
More: Author   ReportBugs   
Tags:

Apache 2.0 License

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

效果图

Download Apk

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

Attributes format 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(从顶部到底部轮播)
setFlags 添加文字下划线、中划线。默认没有划线;可设置 underline(下划线)、strike(中划线)。
支持版本:v1.0.4 开始
setTypeface 设置字体样式类型,如加粗、斜体、斜体加粗。默认为普通类型;可设置 bold(加粗)、italic(斜体)、italic_bold(斜体加粗)。
支持版本:v1.0.4 开始

方法

方法名 描述 版本限制
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.5'  //最新版本
}

或者引用本地 lib

compile project(':textbannerlibrary')

Maven

<dependency>
  <groupId>com.superluo</groupId>
  <artifactId>textbannerview</artifactId>
  <version>1.0.5</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);
            }
        });

Step 4.在 Activity 或者 Fragment 中的 onResume()和 onStop()方法分别调用 startViewAnimator()和 stopViewAnimator(),防止返回页面出现文字重影问题!


@override
protected void onResume() {
    super.onResume();
    tvBanner.startViewAnimator();
}

、、、、、、

@override
protected void onStop() {
    super.onStop();
    tvBanner.stopViewAnimator();
}

Step 5.更多详情请下载并参考项目 demo




版本历史:

v1.0.5 (2018/10/11)

  • 修复广告文字出现锯齿导致不清晰或失真问题;
  • 在上版本添加了字体划线等功能后,取消划线时忘了添加抗锯齿了,感谢大家提了问题。

v1.0.4 (2018/10/05)

  • 新增文字下划线、中划线设置;
  • 新增文字样式类型设置,如字体加粗、斜体、斜体加粗。

v1.0.3 (2018/7/23)

  • 修复用带图的 setDatasWithDrawableIcon 方法后,布局文件里设置 setGravity=left 等位置时不起作用问题;
  • 添加文字重影问题的方法使用说明;
  • 项目工程升级为 AndroidStudio3.1.3。

v1.0.2

  • 实现文字带 drawable 图标一起轮播;
  • drawable 图标可设置在文本的左上右下 共 4 个方向;
  • 修复若干 bug.

v1.0.1

  • 实现可垂直可水平的跑马灯文字轮播;支持设置切换时间设置、动画过度时间设置、文字颜色大小、文字轮播方向等。

更多开源库请关注:GitHub

Apps
About Me
GitHub: Trinea
Facebook: Dev Tools