轮播图bunner控件ConvenientBanner
来源:互联网 发布:淘宝运费模板删不了 编辑:程序博客网 时间:2024/06/05 01:55
首先添加依赖
gradle依赖:
compile ‘com.bigkoo:convenientbanner:2.0.5’
布局xml:
<com.bigkoo.convenientbanner.ConvenientBanner xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/convenientBanner" android:layout_width="match_parent" android:layout_height="200dp" app:canLoop="true" //控制循环与否 />
Java代码:
convenientBanner.setPages(new CBViewHolderCreator<NetworkImageHolderView>() { @Override public NetworkImageHolderView createHolder() { return new NetworkImageHolderView(); } }, topNewsItems) //设置需要切换的View .setPointViewVisible(true) //设置指示器是否可见 .setPageIndicator(new int[]{R.drawable.dot_unselected, R.drawable.dot_selected}) //设置指示器圆点 .startTurning(5000) //设置自动切换(同时设置了切换时间间隔) .stopTurning() //关闭自动切换 .setManualPageable(false) //设置手动影响(设置了该项无法手动切换) .setPageIndicatorAlign(ConvenientBanner.PageIndicatorAlign.ALIGN_PARENT_RIGHT) //设置指示器位置(左、中、右) .setOnItemClickListener(this); //设置点击监听事件
作者单独把etworkImageHolderView类拿出来了,为了方便使用者改写,来实现复杂布局的切换。原etworkImageHolderView如下:
public class NetworkImageHolderView implements Holder<String> { private ImageView imageView; @Override public View createView(Context context) { //你可以通过layout文件来创建,也可以像我一样用代码创建,不一定是Image,任何控件都可以进行翻页 imageView = new ImageView(context); imageView.setScaleType(ImageView.ScaleType.FIT_XY); return imageView; } @Override public void UpdateUI(Context context,int position, String data) { imageView.setImageResource(R.drawable.ic_default_adimage); ImageLoader.getInstance().displayImage(data,imageView); }}
作者是使用universal-image-loader来加载图片的,这里仅放置了一个ImageView,然后通过UpdateUI方法的第三个参数data(图片URL)来加载图片。
在这里可以使用LayoutInflater来加载一个布局,然后通过第三个参数来更新UI。
public class NetworkImageHolderView implements Holder<BannerItem> { private View view; @Override public View createView(Context context) { view = LayoutInflater.from(context).inflate(R.layout.banner_item, null, false); return view; } @Override public void UpdateUI(Context context, int position, BannerItem data) { ((TextView)view.findViewById(R.id.tv_title)).setText(data.getTitle()); ((SimpleDraweeView)view.findViewById(R.id.sdv_background)).setImageURI(Uri.parse(data.getImage())); }}
其中R.layout.banner_item是需要切换的布局,BannerItem类中存放的是两个String,一个是图片上方的文字,一个是图片的URL
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <com.facebook.drawee.view.SimpleDraweeView android:id="@+id/sdv_background" android:layout_width="match_parent" android:layout_height="match_parent" /> <TextView android:id="@+id/tv_title" android:layout_width="match_parent" android:layout_height="match_parent" android:textSize="20sp" android:textColor="@android:color/white" android:layout_marginBottom="20dp" android:gravity="bottom" android:paddingLeft="20dp" android:paddingRight="20dp"/></FrameLayout>
0 0
- 轮播图bunner控件ConvenientBanner
- 轮播图--ConvenientBanner
- 安卓轮播图控件ConvenientBanner的使用
- ConvenientBanner
- Android使用ConvenientBanner控件性能优化
- Android 第三方轮播图控件ConvenientBanner:通用的广告栏控件
- android 图片轮播控件 Android-ConvenientBanner简单使用
- ViewPager图片循环播放控件(手动可控制)-----ConvenientBanner
- Android图片轮播控件ConvenientBanner的简单使用
- Android图片轮播控件ConvenientBanner的简单使用
- Android笔记(5)convenientbanner轮播图
- Android中ConvenientBanner的使用(轮播图)
- 实现android轮播图的开源组件--Android-ConvenientBanner
- ConvenientBanner使用
- ConvenientBanner小结
- ConvenientBanner广告位滑动
- android convenientBanner的使用
- ConvenientBanner的使用
- centos 7禁用ipv6
- 原生JavaScript实现的alert弹框
- ZOJ2868【折半】
- Iphone手机页面消除数字、邮箱的颜色
- Leetcode 486. Predict the Winner 预测赢家 解题报告
- 轮播图bunner控件ConvenientBanner
- AngularJS $http服务例子
- Spring—AOP的ThrowsAdvice接口问题
- sublime快捷键操作技巧类
- MongoDB学习笔记 - Aggregation (1)
- LNMP下FTP服务器的安装和使用(Pureftpd和Proftpd)
- openshift安装,调试及简单代码
- jdk环境变量配置
- MySql学习(七) —— 查询性能优化 深入理解MySql如何执行查询