github地址:https://github.com/youth5201314/banner
一,依赖
因为网络图片需要有一个加载网络图片的框架
所以我选择了很火的glide
compile 'com.youth.banner:banner:1.4.9' //最新版本 compile 'com.github.bumptech.glide:glide:3.7.0'
二,加载网络图片的ImageLoader
public class GlideImageLoader extends ImageLoader { @Override public void displayImage(Context context, Object path, ImageView imageView) { /** 注意: 1.图片加载器由自己选择,这里不限制,只是提供几种使用方法 2.返回的图片路径为Object类型,由于不能确定你到底使用的那种图片加载器, 传输的到的是什么格式,那么这种就使用Object接收和返回,你只需要强转成你传输的类型就行, 切记不要胡乱强转! */ Glide.with(context) .load(path)//图片地址 .crossFade() .into(imageView); } }
三,代码
package com.example.administrator.bannertestdemo; import android.content.Context; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.widget.ImageView; import android.widget.Toast; import com.bumptech.glide.Glide; import com.youth.banner.Banner; import com.youth.banner.BannerConfig; import com.youth.banner.listener.OnBannerClickListener; import com.youth.banner.loader.ImageLoader; import java.util.ArrayList; import java.util.List; public class MainActivity extends AppCompatActivity { Banner banner; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); banner = (Banner) findViewById(R.id.banner); initBanner(); } private void initBanner() { List<String> list = new ArrayList<>(); list.add("http://img.juimg.com/tuku/yulantu/140426/330468-14042622395338.jpg"); list.add("http://v1.qzone.cc/pic/201310/13/16/59/525a61001712d974.jpg!600x600.jpg"); list.add("http://v1.qzone.cc/pic/201310/13/17/00/525a6117b5531062.jpg!600x600.jpg"); banner.setImages(list) .setImageLoader(new GlideImageLoader()) .setDelayTime(2000) .setIndicatorGravity(BannerConfig.RIGHT) .start(); //banner点击事件 position为当前显示的第几张图,从1开始,不是0 banner.setOnBannerClickListener(new OnBannerClickListener() { @Override public void OnBannerClick(int position) { Toast.makeText(MainActivity.this, "点击了" + String.valueOf(position) + "个", Toast.LENGTH_SHORT).show(); } }); } public class GlideImageLoader extends ImageLoader { @Override public void displayImage(Context context, Object path, ImageView imageView) { /** 注意: 1.图片加载器由自己选择,这里不限制,只是提供几种使用方法 2.返回的图片路径为Object类型,由于不能确定你到底使用的那种图片加载器, 传输的到的是什么格式,那么这种就使用Object接收和返回,你只需要强转成你传输的类型就行, 切记不要胡乱强转! */ Glide.with(context) .load(path)//图片地址 .crossFade() .into(imageView); } } }
四,xml布局
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.administrator.bannertestdemo.MainActivity"> <com.youth.banner.Banner android:id="@+id/banner" android:layout_width="match_parent" android:layout_height="200dp"/> </RelativeLayout>
五,权限
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
六,效果