# TextBannerView
**Repository Path**: HarmonyOS-tpc/TextBannerView
## Basic Information
- **Project Name**: TextBannerView
- **Description**: TextBannerView已经实现了可垂直跑、可水平跑的跑马灯
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2021-04-15
- **Last Updated**: 2023-04-17
## Categories & Tags
**Categories**: harmonyos-textview
**Tags**: None
## README
该三方开源库从github fork过来
fork地址:https://github.com/ChessLuo/TextBannerView.git
fork版本号/日期:1.0.4 / 2021/3/8
TextBannerView
==================
[](http://www.apache.org/licenses/LICENSE-2.0.html)
现在的绝大数APP特别是类似淘宝京东等这些大型APP都有文字轮播界面,实现循环轮播多个广告词等功能;这种控件俗称“跑马灯”,而TextBannerView已经实现了可垂直跑、可水平跑的跑马灯了。
效果展示
## 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(从顶部到底部轮播)
## 方法
|方法名|描述|版本限制
|---|---|---|
|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
方法1
引用本地lib
compile project(path: ':textbannerlibrary')
方法2
allprojects{
repositories{
mavenCentral()
}
}
implementation 'io.openharmony.tpc.thirdlib:TextBannerView:1.0.0'
#### Step 2.在布局文件中添加TextBannerView,可以设置自定义属性
```xml
```
* 点击可参考更多自定义属性
#### Step 3.在Activity或者Fragment中配置TextBannerView
```java
//初始化TextBannerView
TextBannerView tvBanner = (TextBannerView) findViewById(R.id.tv_banner);
//设置数据
List list = new ArrayList<>();
list.add("学好Jav、C#、C、ios、html+css+js");
list.add("走遍天下都不怕!!!!!");
list.add("不是我吹,就怕你做不到,哈哈");
list.add("superluo");
list.add("你是最棒的,奔跑吧孩子!");
//调用setDatas(List)方法后,TextBannerView自动开始轮播
//注意:此方法目前只接受List类型
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) {
LogUtil.info("点击了:",String.valueOf(position)+">>"+data);
}
});
```
#### Step 4.在Activity或者Fragment中的onResume()和onStop()方法分别调用startViewAnimator()和stopViewAnimator(),防止返回页面出现文字重影问题!
```java
@override
protected void onActive() {
super.onResume();
tvBanner.startViewAnimator();
}
、、、、、、
@override
protected void onStop() {
super.onStop();
tvBanner.stopViewAnimator();
}
```
#### Step 5.更多详情请下载并参考项目demo