Banner是一个框架,此框架是用于实现在Android中,ViewPager的图片无限轮播功能。

在使用Banner框架时我们需要添加它的远程依赖:compile 'com.youth.banner:banner:1.4.9' //最新版本,即可使用。


Xml代码:


<?xml version="1.0" encoding="utf-8"?><LinearLayout 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="com.example.bannerdemo.MainActivity">    <com.youth.banner.Banner        android:id="@+id/banner"        android:layout_width="wrap_content"        android:layout_height="wrap_content">com.youth.banner.Banner>LinearLayout>
    
    
    
MainActivity代码:
    
    
package com.example.bannerdemo;import android.os.AsyncTask;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.widget.Toast;import com.google.gson.Gson;import com.youth.banner.Banner;import com.youth.banner.listener.OnBannerListener;import java.util.ArrayList;import java.util.List;public class MainActivity extends AppCompatActivity {    // 图片网址    private String url = "http://api.expoon.com/AppNews/getNewsList/type/1/p/1";    private Banner banner;    // 此集合用于封装图片路径    private ArrayList list = new ArrayList<>();    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        //初始化Banner控件        banner = (Banner) findViewById(R.id.banner);        // 此方法用于获取网络资源,并设置给Banner实现图片自动轮播        initdata();        //Banner的图片点击事件        banner.setOnBannerListener(new OnBannerListener() {            @Override            public void OnBannerClick(int position) {                Toast.makeText(MainActivity.this, "您正在点击图片" + position, Toast.LENGTH_SHORT).show();            }        });    }    // 此方法用于获取网络资源,并设置给Banner实现图片自动轮播    private void initdata() {        //传入图片网址获取网络资源,并设置给Banner实现图片自动轮播        new MAsynctask().execute(url);    }    //异步加载newsjson数据    class MAsynctask extends AsyncTask {        @Override        protected String doInBackground(String... strings) {            //返回获取到的Json数据            return MyTools.getJson(strings[0]);        }        @Override        protected void onPostExecute(String s) {            super.onPostExecute(s);            //获取Json数据,并进行解析            Gson gson = new Gson();            Bean bean = gson.fromJson(s, Bean.class);            //得到集合            List data = bean.getData();            // for循环,得到集合每一个对象中的图片路径,封装进集合            for (int i = 0; i < data.size(); i++) {               // 图片路径封装进集合                list.add(data.get(i).getPic_url());            }            //为Banner设置参数(LmageLoader对象)            banner.setImageLoader(new MyImageLoader());            //为Banner设置实现轮播的图片路径的集合            banner.setImages(list);            //开启轮播            banner.start();        }        @Override        protected void onProgressUpdate(Void... values) {            super.onProgressUpdate(values);        }    }}
    
    
图片加载类代码:
    
package com.example.bannerdemo;import android.content.Context;import android.widget.ImageView;import com.youth.banner.loader.ImageLoader;/** * author:Created by WangZhiQiang on 2017/10/18. */public class MyImageLoader extends ImageLoader {    //此方法用于为Viewpager上展示ImagerView(图片)的控件设置图片    @Override    public void displayImage(Context context, Object path, ImageView imageView) {        //得到ImageLoader的实例        com.nostra13.universalimageloader.core.ImageLoader instance = com.nostra13.universalimageloader.core.ImageLoader.getInstance();        //通过ImageLoader设置图片        instance.displayImage((String) path, imageView);    }}
    
    


更多相关文章

  1. android中如何设置点击button页面跳转
  2. Snackbar使用,修改字体和背景颜色
  3. android support Percent支持库开发
  4. Android异步下载网络图片(其三)
  5. android developer API Guider之user interface---Settings(二)
  6. 图片加载处理
  7. 第四章(2)Libgdx手工项目设置
  8. 【Android】更改程序图标
  9. Android仿淘宝头条垂直滚动,垂直走马灯,公告

随机推荐

  1. android system server 启动流程
  2. 【Android】Android studio 编译问题:fini
  3. Android webview 调起微信支付
  4. Android培训班(33)
  5. Android往SD卡上存储文件
  6. Android如何将第三方信息应用设置为默认
  7. android 访问本地站点 localhost 127.0.0
  8. android p 充拔电提示音
  9. 【notification】Android 中创建震动通知
  10. Android的SeekBar自定义样式