依赖
implementation ‘com.youth.banner:banner:1.4.10’
布局

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"><com.youth.banner.Bannerandroid:id="@+id/banner1"android:layout_width="match_parent"android:layout_height="200dp"></com.youth.banner.Banner>
</android.support.constraint.ConstraintLayout>

2.主页面


import android.content.Context;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;import com.nostra13.universalimageloader.core.ImageLoader;
import com.youth.banner.Banner;
import com.youth.banner.BannerConfig;
import com.youth.banner.loader.ImageLoaderInterface;import java.util.ArrayList;
import java.util.List;public class MainActivity extends AppCompatActivity {private Banner banner1;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//获取资源idbanner1=findViewById(R.id.banner1);//设置文字,小圆点等banner1.setBannerStyle(BannerConfig.CIRCLE_INDICATOR_TITLE_INSIDE)banner1.setImageLoader(new ImageLoaderInterface<ImageView>() {@Overridepublic void displayImage(Context context, Object path, ImageView imageView) {Bean.NewslistBean bean= (Bean.NewslistBean) path;ImageLoader.getInstance().displayImage(bean.getPicUrl(),imageView);}@Overridepublic ImageView createImageView(Context context) {ImageView imageView=new ImageView(context);imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);return imageView;}});indata();}private  void  indata(){Netiul.getInstance().getRequest("https://api.tianapi.com/wxnew/?key=c4aa776e0a51d57d6750511e2baa46b6&num=6&page=1",Bean.class,new Netiul.Callback<Bean>(){@Overridepublic void onsuccess(Bean bean) {banner1.setImages(bean.getNewslist());banner1.setBannerTitles(getTitles(bean));banner1.start();}});}//这是给文字private List<String> getTitles(Bean bannerResponse) {List<String> list = new ArrayList<>();for (Bean.NewslistBean banner: bannerResponse.getNewslist()) {list.add(banner.getTitle());}return list;}}

3.工具类、

import android.os.AsyncTask;
import android.provider.CallLog;import com.google.gson.Gson;
import com.youth.banner.Banner;import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;public class Netiul {public  static  Netiul instance;public Netiul() {}public  static  Netiul getInstance(){if(instance==null){instance=new Netiul();}return  instance;}public  interface  Callback<T>{void  onsuccess(T t);}public  void getRequest(final String  urlstr, final Class clazz,final Callback callback){new AsyncTask<String,Void,Object>(){@Overrideprotected Object doInBackground(String... strings) {return getRequest(strings[0],clazz);}@Overrideprotected void onPostExecute(Object o) {callback.onsuccess(o);}}.execute(urlstr);}public  <T> T getRequest(String urlStr,Class clazz){return (T) new Gson().fromJson(getRequest(urlStr),clazz);}public String getRequest(String urlStr){String result = "";try {//定义url地址URL url = new URL(urlStr);//打开连接HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();//设置请求格式urlConnection.setRequestMethod("GET");//设置超时urlConnection.setReadTimeout(5000);urlConnection.setConnectTimeout(5000);//获取请求码int responseCode = urlConnection.getResponseCode();if(responseCode == 200){result = stream2String(urlConnection.getInputStream());}} catch (MalformedURLException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}return result;}//将字节流转换为字符流private String stream2String(InputStream inputStream) throws IOException {StringBuilder builder = new StringBuilder();BufferedReader br = new BufferedReader(new InputStreamReader(inputStream));for (String tmp = br.readLine();tmp!=null;tmp = br.readLine()){builder.append(tmp);}return builder.toString();}}

4.App


package com.bw.ymy.lunbo;import android.app.Application;import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;public class App extends Application {@Overridepublic void onCreate() {super.onCreate();ImageLoader.getInstance().init(new ImageLoaderConfiguration.Builder(this).memoryCacheSizePercentage(10).discCacheSize(50 * 1024 * 1024).defaultDisplayImageOptions(new DisplayImageOptions.Builder().showImageOnFail(R.mipmap.ic_launcher).showImageOnLoading(R.mipmap.ic_launcher).cacheInMemory(true).cacheOnDisk(true).build()).build());}
}

5.Bean类

package com.bw.ymy.lunbo;import java.util.List;public class Bean {/*** code : 200* msg : success* newslist : [{"ctime":"2018-11-18","title":"普通人的汽车基础知识到底有多差?","description":"易车","picUrl":"http://mmbiz.qpic.cn/mmbiz_jpg/tXmTSicVPQ6enLlOibt3RlJsElhn3s1HU26m15CuHDMvWKU0g4xCEadHksFVdzkdibHVRUQlibBsttpMicE64ib8LCTw/0?wx_fmt=jpeg","url":"https://mp.weixin.qq.com/s?src=11&timestamp=1542540609&ver=1252&signature=eMbdrP2jsY3rO29rXPW0Mz3YTbYZIwL8JT9LjdhLdvUaZ3CSWe*NqMvBtI3P9jItt6urlZ*HbhICMVsBzZcZzBaNDj7ovAaBcoDv7bvk*BuVfBfQElBent5ZfHSnUiJk&new=1"},{"ctime":"2018-11-18","title":"韦德可能没法大帽詹姆斯了。詹姆斯输球了还要被为难。","description":"詹姆斯说","picUrl":"http://mmbiz.qpic.cn/mmbiz_jpg/geLkPvpOhUSO2UZDgmdp9iaHwC8syFWAPnS6wf5Xq8HRY3TVjbhMZQJTdYyLiaBLNB8kg1Q99ZMLicokH702Yclyg/0?wx_fmt=jpeg","url":"https://mp.weixin.qq.com/s?src=11&timestamp=1542540620&ver=1252&signature=*Jkik6mGD1Zjx20taBuMMyI01LxdBjrST1Hl9qhvOWpbDZCpUbM*a4SxO4cFUWEgZp*TY6ASE2jRvdjWqCP7WiowIDj0LPxLZxF4A6rErNu4YIbRkoaIufCbUHs*D8GJ&new=1"},{"ctime":"2018-11-18","title":"赛季首个60分诞生!乔老板还舍得交易他吗?","description":"腾讯NBA","picUrl":"http://mmbiz.qpic.cn/mmbiz_jpg/OQeAz51Lq7JibYuSOIN7rzSr9BqczGSCSnx4oUoEZgGPTlgNOBuIJyObDOiaTwaAKebqzlRtfXJ9uyM6E7er85Cw/0?wx_fmt=jpeg","url":"https://mp.weixin.qq.com/s?src=11&timestamp=1542540620&ver=1252&signature=Ww97b063b9rf0C2OQhdWhCCr74SFNozO6bNuXNeWWl1is6XAzr6KnhtaKBHWDua50*jAbV51OY9MneKP9sAS2Z*tctHx4tGPbposKhE6SMP0vWe5XvzUH5zAat0a5coQ&new=1"},{"ctime":"2018-11-18","title":"中国移动:5G时代每月人均流量至少60GB","description":"电脑报","picUrl":"http://mmbiz.qpic.cn/mmbiz_jpg/HrhrgxCloNaicMKjagZsNzVnsVCkAhwFSPyJQu8l5w71cfgwfKaHArMWCna3zYAdLAnRd6NBKbg2icdfmSWyZiaWQ/0?wx_fmt=jpeg","url":"https://mp.weixin.qq.com/s?src=11&timestamp=1542540606&ver=1252&signature=HGPVWHZAaOPdxUZbFx4o79dHIwvT4DniBaLk1Li-b0pkbywkWwZqurbDiFEerjX*wz1T8nbiTRvYhAIyyNIij8UU2i6gtZA2M0Wb9GihMIcwpu4BG6od-Ccjlld1OXiP&new=1"},{"ctime":"2018-11-18","title":"周小川国内首谈数字货币和电子支付:有三方面扭曲 有些技术只关注如何圈钱","description":"大公网","picUrl":"http://mmbiz.qpic.cn/mmbiz_jpg/1rNDCX3Xn4E6s6jCJFjYibdIrQ6ESE8leib5ZVsSSyqViaOZ4ImaGPnrCVKH49libAibx6LsyXWGcsZ205jxNjqckEA/0?wx_fmt=jpeg","url":"https://mp.weixin.qq.com/s?src=11&timestamp=1542540608&ver=1252&signature=oS4sTMvXomHQzgHGXjNZGyT6ljjuYwuyhaBkrr5deynbaymihpsyi1AGREauBNbNvHH76cbYdxvXr7zbfz2y3NxNphFXx5cDUIjj7m2VwT82wIVe4EdE9oP6F45wLulJ&new=1"},{"ctime":"2018-11-18","title":"湖北:半岁婴儿\u201c灌肠\u201d退烧 退烧不成反肾衰 面临终身透析","description":"医群网","picUrl":"http://mmbiz.qpic.cn/mmbiz_jpg/AuyMO4zftIqRF8NicTCuTicYFpbD72XyEq8UA2IGgxYDocezyoQwxfDMor8YopxeAtsoXbcILVWh6UhoZGDAZuNQ/0?wx_fmt=jpeg","url":"https://mp.weixin.qq.com/s?src=11&timestamp=1542540603&ver=1252&signature=ETBgeBQQNDkh6GalturYW4UDspDW2xTh8imKCtSPk46bUs2vzDZfzFdhdNyOknc-RvtCTQa8VQ*kE8Yj0v23WVeWE26Yf-G53F*GYgoY3321H7jqg3lPpL1IVTLzArYb&new=1"}]*/private int code;private String msg;private List<NewslistBean> newslist;public int getCode() {return code;}public void setCode(int code) {this.code = code;}public String getMsg() {return msg;}public void setMsg(String msg) {this.msg = msg;}public List<NewslistBean> getNewslist() {return newslist;}public void setNewslist(List<NewslistBean> newslist) {this.newslist = newslist;}public static class NewslistBean {/*** ctime : 2018-11-18* title : 普通人的汽车基础知识到底有多差?* description : 易车* picUrl : http://mmbiz.qpic.cn/mmbiz_jpg/tXmTSicVPQ6enLlOibt3RlJsElhn3s1HU26m15CuHDMvWKU0g4xCEadHksFVdzkdibHVRUQlibBsttpMicE64ib8LCTw/0?wx_fmt=jpeg* url : https://mp.weixin.qq.com/s?src=11&timestamp=1542540609&ver=1252&signature=eMbdrP2jsY3rO29rXPW0Mz3YTbYZIwL8JT9LjdhLdvUaZ3CSWe*NqMvBtI3P9jItt6urlZ*HbhICMVsBzZcZzBaNDj7ovAaBcoDv7bvk*BuVfBfQElBent5ZfHSnUiJk&new=1*/private String ctime;private String title;private String description;private String picUrl;private String url;public String getCtime() {return ctime;}public void setCtime(String ctime) {this.ctime = ctime;}public String getTitle() {return title;}public void setTitle(String title) {this.title = title;}public String getDescription() {return description;}public void setDescription(String description) {this.description = description;}public String getPicUrl() {return picUrl;}public void setPicUrl(String picUrl) {this.picUrl = picUrl;}public String getUrl() {return url;}public void setUrl(String url) {this.url = url;}}

实现效果

Banner无限轮播相关推荐

  1. Android Banner(无限轮播图)控件的简单使用(网络数据OkHttp3)

    一言不合就上图 banner是第三方集成好的直接注入依赖就可以用 老套路先注入依赖: //banner这个版本才是王道(我的studio是2.3.3)compile 'com.youth.banner ...

  2. Banner 自动无限轮播(普通)

    例题:Banner自动无限轮播 build.gradle中加入(加在最下面):compile 'com.youth.banner:banner:1.4.10' 添加之后需要点击右上角的   Sync ...

  3. iOS UI篇——轮播图Banner图片动图混合无限轮播

    KJBannerView 介绍一下自己之前写的无限轮播图库,无限自动循环滚动,大家有什么需求可以给我留言,持续更新中- Demo地址:KJBannerViewDemo 功能介绍 KJBannerVie ...

  4. 【Swift】自定义控件无限轮播 + 无限图片轮播

    CocoaPods安装 pod 'PGBannerSwift' 复制代码 使用 1.无限图片轮播 首先引入import PGBannerSwift let banner = PGBanner(fram ...

  5. ViewPager两种方式实现无限轮播

    给自己的忠告:虽然轮子很好用,但是使用轮子的前提是:如果不去封装一些复杂的功能,自己会用最基本的方法写一个,不然再好的轮子那也是别人的,当自己项目遇到和轮子不一样的地方,那就只能束手无策或者改人家的源 ...

  6. 利用RecyclerView实现无限轮播广告条

    代码地址如下: http://www.demodashi.com/demo/14771.html 前言: 公司产品需要新增悬浮广告条的功能,要求是可以循环滚动,并且点击相应的浮条会跳转到相应的界面,在 ...

  7. 引导界面滑动导航 + 大于等于1页时无限轮播 + 各种切换动画轮播效果

    参考地址: https://github.com/bingoogolapple/BGABanner-Android#%E6%95%88%E6%9E%9C%E5%9B%BE%E4%B8%8E%E7%A4 ...

  8. 无限轮播的实现,未加自动轮播效果(非原创)

    最近一直在看视频,学到了一个无限轮播,今天把它给写下来保存,方便日后自己查阅. html 1 <!DOCTYPE html> 2 <html> 3 <head> 4 ...

  9. jquery 垂直无限轮播

    javascript垂直轮播,依赖于jquery实现的,并且首尾无缝衔接.原理很简单,就不讲述了,直接贴源码. 1.HTML节点 <div class="banner_group&qu ...

最新文章

  1. Word提供的【样式和格式】设计!
  2. MFC中的CString.Format及CString,string,char*之间的转换
  3. python多线程爬取图片
  4. 靠着零代码报表工具,转行报表开发后月薪超过3万
  5. 办公室多显示器共享主机解决方案
  6. Dovecot 邮件假删除、回收站功能 (使用lazy-expunge插件)
  7. ansys2020视频教程
  8. android将彩图转为黑白_android 将图片转换成黑白图片
  9. java中倒出pdf增加高宽_java – 如何扩展PDF的页面大小以添加水印...
  10. Android UI 测试指南之 Espresso
  11. Alexa, Stop Spying on Me!“: Speech Privacy Protection Against Voice Assistants
  12. 去哪儿网被央视曝光,其实智慧旅行可以做到更多
  13. 玩安卓从 0 到 1 之架构思考
  14. html app启动页制作,【示例】App引导页的制作
  15. Web应用优化 - 优化切页模式
  16. IBM天工计划AIX培训活动感想
  17. U盘安装ubuntu 时候无法 安装 grub 到磁盘
  18. 118.【微信小程序 - 02】
  19. Python自动操作 GUI 神器——PyAutoGUI
  20. 这样的人注定生活在社会最底层

热门文章

  1. 苹果A系列芯片的三年AI进化:为何要大规模升级AI算力?
  2. 如何解决4G摄像头在智能巡检中掉线的方案
  3. 二手书市场的快速增长:多抓鱼产品分析报告
  4. dem生成等高线教程-dem提取等高线教程
  5. 常用连续型随机变量的概率分布表(附概率密度函数全域积分等于1、期望、方差的推导与证明)
  6. 计算机组成原理(下)
  7. Word2007 无法给尾部空格加下划线
  8. C# DataGridView 打印代码
  9. SpringSecurity以及Oauth2(笔记)
  10. Windows系统实现共享文件夹——通过无账号密码方式访问