Banner (android 轮播图)
来源:互联网 发布:淘宝运营助理简历 编辑:程序博客网 时间:2024/05/13 23:50
Banner:
Android广告图片轮播控件,支持无限循环和多种主题,可以灵活设置轮播样式、动画、轮播和切换时间、位置、图片加载框架等!
导入banner 库:
在AndroidStudio 中添加依赖库
compile ‘com.youth.banner:banner:+’ //banner库
compile ‘com.github.bumptech.glide:glide:3.7.0’ //glide库,网络图片加载
下面使用这个库:
xml 代码:
<com.youth.banner.Banner xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/banner" android:layout_width="match_parent" android:layout_height="200dp" />
java 代码:
private Banner banner;banner= (Banner) findViewById(R.id.banner);private ListView list; //ListViewList<Class<? extends ViewPager.PageTransformer>> transformers=new ArrayList<>(); //将轮播图的所有效果全放在一个List中来保存,作用于Bannerprivate List<String> images;private List<String> bannerStyle; //ListView 上设置Banner的轮播效果文字提示,作用于ListViewpublic void initView(){images=new ArrayList<>(); images.add("http://ww4.sinaimg.cn/large/006uZZy8jw1faic1xjab4j30ci08cjrv.jpg"); images.add("http://ww4.sinaimg.cn/large/006uZZy8jw1faic21363tj30ci08ct96.jpg"); images.add("http://ww4.sinaimg.cn/large/006uZZy8jw1faic259ohaj30ci08c74r.jpg"); images.add("http://ww4.sinaimg.cn/large/006uZZy8jw1faic2b16zuj30ci08cwf4.jpg"); images.add("http://ww4.sinaimg.cn/large/006uZZy8jw1faic2e7vsaj30ci08cglz.jpg");//给Banner 设置网络图片 (images)banner.setImages(images) .setImageLoader(new GlideImageLoader()) .setOnBannerListener(this) .start();}bannerStyle=new ArrayList<>(); bannerStyle.add("DefaultTransformer"); //该List只是为了给ListView 的Item添加文字提示效果 bannerStyle.add("AccordionTransformer"); bannerStyle.add("BackgroundToForegroundTransformer"); bannerStyle.add("ForegroundToBackgroundTransformer"); bannerStyle.add("CubeInTransformer"); bannerStyle.add("CubeOutTransformer"); bannerStyle.add("DepthPageTransformer"); bannerStyle.add("FlipHorizontalTransformer"); bannerStyle.add("FlipVerticalTransformer"); bannerStyle.add("RotateDownTransformer"); bannerStyle.add("RotateUpTransformer"); bannerStyle.add("ScaleInOutTransformer"); bannerStyle.add("StackTransformer"); bannerStyle.add("TabletTransformer"); bannerStyle.add("ZoomInTransformer"); bannerStyle.add("ZoomOutTranformer"); bannerStyle.add("ZoomOutSlideTransformer"); list.setAdapter(new MyBaseAdapter()); list.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { banner.setBannerAnimation(transformers.get(position)); //给banner 设置轮播效果的item点击事件 } });public void initData(){ //给transformers 这个List中添加所有轮播图不同样式效果的类 transformers.add(DefaultTransformer.class); transformers.add(AccordionTransformer.class); transformers.add(BackgroundToForegroundTransformer.class); transformers.add(ForegroundToBackgroundTransformer.class); transformers.add(CubeInTransformer.class); transformers.add(CubeOutTransformer.class); transformers.add(DepthPageTransformer.class); transformers.add(FlipHorizontalTransformer.class); transformers.add(FlipVerticalTransformer.class); transformers.add(RotateDownTransformer.class); transformers.add(RotateUpTransformer.class); transformers.add(ScaleInOutTransformer.class); transformers.add(StackTransformer.class); transformers.add(TabletTransformer.class); transformers.add(ZoomInTransformer.class); transformers.add(ZoomOutTranformer.class); transformers.add(ZoomOutSlideTransformer.class); }@Override public void OnBannerClick(int position) { Toast.makeText(getApplicationContext(),"你点击了:"+position,Toast.LENGTH_SHORT).show(); } @Override protected void onStart() { super.onStart(); //开始轮播 banner.startAutoPlay(); } @Override protected void onStop() { super.onStop(); //结束轮播 banner.stopAutoPlay(); } class MyBaseAdapter extends BaseAdapter{ @Override public int getCount() { return bannerStyle.size(); } @Override public Object getItem(int position) { return bannerStyle.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { View view =LayoutInflater.from(MainActivity.this).inflate(R.layout.item,null); TextView text= (TextView) view.findViewById(R.id.text); text.setText(bannerStyle.get(position));//设置item文字效果 return view; } }
然后是GlideImageLoader 这个类
public class GlideImageLoader extends ImageLoader{ @Override public void displayImage(Context context, Object path, ImageView imageView) { Glide.with(context.getApplicationContext()) .load(path) .crossFade() .into(imageView); }}
0 0
- Banner (android 轮播图)
- Android的banner(轮播图)的实现
- android banner 实现轮播图
- Android 轮播图Banner使用
- Android顶部banner轮播图的两种实现(ViewPager+ViewPagerIndicator/banner)
- Android 自定义Banner广告轮播图
- 轮播图(使用Banner)
- Android设计之美:MVP模式创建轮播图(Banner)
- Android banner,轮播图自动滚动控件
- Android轮播图控件之Banner学习使用
- android轮播图Banner的使用及详解
- Android Banner轮播图 recyclerView添加headVie
- Android 轮播图Banner的简单实现
- Android——Banner无限轮播图
- 轮播图banner
- banner轮播图
- banner轮播图
- banner轮播图
- C++中创建对象的时候加括号和不加括号的区别
- Python设置在shell脚本中自动补全功能
- bzoj 2707: [SDOI2012]走迷宫 期望dp+强连通分量+高斯消元
- Opencv3.0--第一篇【线性混合&滑动窗的创建】
- 算法笔记_061-蓝桥杯练习 字串统计(Java)
- Banner (android 轮播图)
- 十大程序员相关电影推荐
- OpenCV 几何变换-图像缩放
- Java设计模式之六大设计原则
- 设计模式笔记二十五:访问者模式
- 基于MCP2515的Linux CAN总线驱动程序设计(三)
- angularjs-标签页tab选项卡
- cors跨域(以及和jsonp的区别)
- 数据的存储介质-磁盘的硬件特性