Android中文字轮播控件TextBannerView控件的使用

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

1.效果图

我这里的需求是在首页进行搜索关键字的轮播,上传不了动图,只能看个静图,如下:
在这里插入图片描述

2.控件属性和方法

1、属性

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

2 、方法:

方法名描述
setDatas(List datas)设置数据
startViewAnimator()设置开始文字切换(默认自动)
stopViewAnimator()设置暂停文字切换
setItemOnClickListener(listener)设置点击监听事件回调
setDatasWithDrawableIcon()设置带图标的数据;第一个参数:数据 。第二参数:drawable. 第三参数drawable尺寸。第四参数图标位置(仅支持Gravity.LEFT、Gravity.TOP、Gravity.RIGHT、Gravity.BOTTOM)
3.使用步骤
1. 引入依赖
  //文字轮播控件
    implementation 'com.superluo:textbannerview:1.0.5'
2. 布局中使用TextBannerView
  <com.superluo.textbannerlibrary.TextBannerView
                android:id="@+id/tv_banner"
                android:visibility="gone"
                app:setInterval="1500"
                app:setDirection="top_to_bottom"
                app:setTextColor="@color/theme_defaultText"
                app:setTextSize="@dimen/default_size"
                android:background="@color/white"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"/>
3…在Activity或者Fragment中配置TextBannerView

我这里是在Fragment中设置的

// 1.初始化TextBannerView
TextBannerView tv_banner = (TextBannerView) findViewById(R.id.tv_banner);
 
//2. 设置数据
List<String> promoList= new ArrayList<>();

 //我这里的data 是从后台获取到的
for(int i=0;i<data.length();i++){
    JSONObject item = data.getJSONObject(i);
    promoList.add(item.getString("keyword"));
  }
tv_banner.setDatas(promoList);
 
//调用setDatas(List<String>)方法后,TextBannerView自动开始轮播
//注意:此方法目前只接受List<String>类型

 
 // 2.
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);
        
 
// 3. 设置TextBannerView点击监听事件,返回点击的data数据, 和position位置
 tv_banner.setItemOnClickListener(new ITextBannerItemClickListener() {
            @Override
            public void onItemClick(String data, int position) {
            //获取点击的数据,然后需要做的事情,根据情况而定,我这里是实现跳转
                intent = new Intent(Classify.this.getContext(), GoodSearch.class);
                intent.putExtra("promoKeyWord",promoList.get(position));
                startActivity(intent);
            }
        });


// 4.为了出现重影,还得在onResume和onStop中设置
 @Override
    public void onResume() {
        super.onResume();
        tv_banner.startViewAnimator(); //1.防止出现重影
    }

    @Override
    public void onStop() {
        super.onStop();
       tv_banner.stopViewAnimator();  //2.防止出现重影
    }
 
  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值