今天帶給大家一個比較實(shí)用的輪播圖框架,banner
1.導(dǎo)入依賴
'com.youth.banner:banner:1.4.9'
2.添加權(quán)限
<uses-permission android:name="android.permission.INTERNET" />//聯(lián)網(wǎng)
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />//讀取外置存儲卡
3.添加布局
<com.youth.banner.Banner
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/banner"
android:layout_width="match_parent"
android:layout_height="150dp" />
4.在Activity 中編寫代碼吨悍,相關(guān)代碼含義已經(jīng)全部添加注釋
public class MyBanner extends AppCompatActivity implements OnBannerListener {
private Banner banner;
private ArrayList<String> list_path;
private ArrayList<String> list_title;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my_banner);
initView();
}
private void initView() {
banner = (Banner) findViewById(R.id.banner);
//放圖片地址的集合
list_path = new ArrayList<>();
//放標(biāo)題的集合
list_title = new ArrayList<>();
list_path.add("http://ww4.sinaimg.cn/large/006uZZy8jw1faic21363tj30ci08ct96.jpg");
list_path.add("http://ww4.sinaimg.cn/large/006uZZy8jw1faic259ohaj30ci08c74r.jpg");
list_path.add("http://ww4.sinaimg.cn/large/006uZZy8jw1faic2b16zuj30ci08cwf4.jpg");
list_path.add("http://ww4.sinaimg.cn/large/006uZZy8jw1faic2e7vsaj30ci08cglz.jpg");
list_title.add("好好學(xué)習(xí)");
list_title.add("天天向上");
list_title.add("熱愛勞動");
list_title.add("不搞對象");
//設(shè)置內(nèi)置樣式扫茅,共有六種可以點(diǎn)入方法內(nèi)逐一體驗(yàn)使用。
banner.setBannerStyle(BannerConfig.CIRCLE_INDICATOR_TITLE_INSIDE);
//設(shè)置圖片加載器育瓜,圖片加載器在下方
banner.setImageLoader(new MyLoader());
//設(shè)置圖片網(wǎng)址或地址的集合
banner.setImages(list_path);
//設(shè)置輪播的動畫效果葫隙,內(nèi)含多種特效,可點(diǎn)入方法內(nèi)查找后內(nèi)逐一體驗(yàn)
banner.setBannerAnimation(Transformer.Default);
//設(shè)置輪播圖的標(biāo)題集合
banner.setBannerTitles(list_title);
//設(shè)置輪播間隔時間
banner.setDelayTime(3000);
//設(shè)置是否為自動輪播躏仇,默認(rèn)是“是”恋脚。
banner.isAutoPlay(true);
//設(shè)置指示器的位置,小點(diǎn)點(diǎn)焰手,左中右糟描。
banner.setIndicatorGravity(BannerConfig.CENTER)
//以上內(nèi)容都可寫成鏈?zhǔn)讲季郑@是輪播圖的監(jiān)聽书妻。比較重要船响。方法在下面。
.setOnBannerListener(this)
//必須最后調(diào)用的方法躲履,啟動輪播圖见间。
.start();
}
//輪播圖的監(jiān)聽方法
@Override
public void OnBannerClick(int position) {
Log.i("tag", "你點(diǎn)了第"+position+"張輪播圖");
}
//自定義的圖片加載器
private class MyLoader extends ImageLoader {
@Override
public void displayImage(Context context, Object path, ImageView imageView) {
Glide.with(context).load((String) path).into(imageView);
}
}
}
還有要記得加代碼混淆,不然在release(正式環(huán)境下會報錯)
# glide 的混淆代碼
-keep public class * implements com.bumptech.glide.module.GlideModule
-keep public enum com.bumptech.glide.load.resource.bitmap.ImageHeaderParser$** {
**[] $VALUES;
public *;
}
# banner 的混淆代碼
-keep class com.youth.banner.** {
*;
}
如果還有不懂的地方可以在博客下留言工猜。
也可以去看GitHub:https://github.com/youth5201314/banner