第一步:需要在build.gradle文件中添加代碼:
compile 'com.youth.banner:banner:1.4.10'
這樣就可以在xml文件中找到Banner這個控件了.
MainActivity中:
public class MainActivity extends AppCompatActivity {
String url = "http://pic39.nipic.com/20140226/18071023_164300608000_2.jpg";
String url1 = "http://a0.att.hudong.com/15/08/300218769736132194086202411_950.jpg";
String url2 = "https://img-my.csdn.net/uploads/201309/01/1378037235_7476.jpg";
String url3 = "http://pic39.nipic.com/20140226/18071023_164300608000_2.jpg";
String url4 = "http://a0.att.hudong.com/15/08/300218769736132194086202411_950.jpg";
String url5 = "https://img-my.csdn.net/uploads/201309/01/1378037235_7476.jpg";
ArrayList<String> urls;
private Banner banner;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
banner = (Banner) findViewById(R.id.mybanner);
initView();
}
private void initView() {
//把圖片url存放到集合中
urls = new ArrayList<String>();
urls.add(url);
urls.add(url1);
urls.add(url2);
urls.add(url3);
urls.add(url4);
urls.add(url5);
banner = (Banner) findViewById(R.id.mybanner);
banner.setImageLoader(new MyBannerLoader());//添加自定義的圖片加載器
banner.setImages(urls);//設置圖片資源
banner.start();//開始輪播
}
}
ImageLoader初始化的類:Myapplication
public class MyApplication extends Application{
@Override
public void onCreate() {
super.onCreate();
//初使化
ImageloaderUtil.initConfig(this);
}
}
ImageLoaderUtil工具類:
public class ImageloaderUtil {
/**
* ImageLoader的配置
* @param context
*/
public static void initConfig(Context context) {
//配置
// File cacheFile=context.getExternalCacheDir();
File cacheFile= new File(Environment.getExternalStorageDirectory()+"/"+"imgages");
ImageLoaderConfiguration config=new ImageLoaderConfiguration.Builder(context)
.memoryCacheExtraOptions(480, 800)//緩存圖片最大的長和寬
.threadPoolSize(2)//線程池的數量
.threadPriority(4)
.memoryCacheSize(2*1024*1024)//設置內存緩存區大小
.diskCacheSize(20*1024*1024)//設置sd卡緩存區大小
.diskCache(new UnlimitedDiscCache(cacheFile))//自定義緩存目錄
.writeDebugLogs()//打印日誌內容
.diskCacheFileNameGenerator(new Md5FileNameGenerator())//給緩存的文件名進行md5加密處理
.build();
ImageLoader.getInstance().init(config);
}
/**
* 獲取圖片設置類
* @return
*/
public static DisplayImageOptions getImageOptions(Context context){
DisplayImageOptions optionsoptions=new DisplayImageOptions.Builder()
.cacheInMemory(true)//使用內存緩存
.cacheOnDisk(true)//使用磁盤緩存
.bitmapConfig(Bitmap.Config.RGB_565)//設置圖片格式
.build();
return optionsoptions;
}
}
圖片加載器:
public class MyBannerLoader extends ImageLoader {
@Override
public void displayImage(Context context, Object path, ImageView imageView) {
com.nostra13.universalimageloader.core.ImageLoader uImageLoader= com.nostra13.universalimageloader.core.ImageLoader.getInstance();
//path:表示路徑 imageview:顯示的控件
uImageLoader.displayImage(path.toString(),imageView,ImageloaderUtil.getImageOptions(context));
}
}