Android 用banner簡單實現(xiàn)圖片無限循環(huán)

直接上圖


不知道怎么放動態(tài)圖。

實現(xiàn)步驟

1、導入引入所需要的包

implementation 'com.youth.banner:banner:1.4.10' implementation 'com.github.bumptech.glide:glide:3.7.0'

2、xml布局文件

<com.youth.banner.Banner

android:id="@+id/banner1"

android:layout_width="wrap_content"

android:layout_height="200dp">

3、activity代碼

activity代碼


public class MainActivityextends AppCompatActivityimplements OnBannerListener {

Contextcontext;

? ? Bannerbanner;

? ? @Override

? ? protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

? ? ? ? setContentView(R.layout.activity_main);

? ? ? ? context=MainActivity.this;

? ? ? ? setBanner();

? ? }

private void setBanner()

{

banner=findViewById(R.id.banner1);

? ? ? ? List imgs=new ArrayList<>();

? ? ? ? imgs.add(getStringFromDrawableRes(context,R.drawable.p1));

? ? ? ? imgs.add(getStringFromDrawableRes(context,R.drawable.p2));

? ? ? ? imgs.add(getStringFromDrawableRes(context,R.drawable.p3));

? ? ? ? List titles =new ArrayList<>();

? ? ? ? titles.add("教育圖片1");

? ? ? ? titles.add("教育圖片2");

? ? ? ? titles.add("教育圖片3");

? ? ? ? //設置內(nèi)置樣式,共有六種可以點入方法內(nèi)逐一體驗使用。

? ? ? ? banner.setBannerStyle(BannerConfig.CIRCLE_INDICATOR_TITLE_INSIDE);

? ? ? ? //設置圖片加載器,圖片加載器在下方

? ? ? ? banner.setImageLoader(new MyLoader());

? ? ? ? //設置圖片網(wǎng)址或地址的集合

? ? ? ? banner.setImages(imgs);

? ? ? ? //設置輪播的動畫效果,內(nèi)含多種特效,可點入方法內(nèi)查找后內(nèi)逐一體驗

? ? ? ? banner.setBannerAnimation(Transformer.Default);

? ? ? ? //設置輪播圖的標題集合

? ? ? ? banner.setBannerTitles(titles);

? ? ? ? //設置輪播間隔時間

? ? ? ? banner.setDelayTime(3000);

? ? ? ? //設置是否為自動輪播,默認是“是”。

? ? ? ? banner.isAutoPlay(true);

? ? ? ? //設置指示器的位置,小點點,左中右。

? ? ? ? banner.setIndicatorGravity(BannerConfig.CENTER)

//以上內(nèi)容都可寫成鏈式布局,這是輪播圖的監(jiān)聽。比較重要。方法在下面。

? ? ? ? ? ? ? ? .setOnBannerListener(this)

//必須最后調(diào)用的方法,啟動輪播圖。

? ? ? ? ? ? ? ? .start();

? ? }

@Override

? ? public void OnBannerClick(int position) {

Log.i("tag", "你點了第"+position+"張輪播圖");

? ? }

//自定義的圖片加載器

? ? private class MyLoaderextends ImageLoader {

@Override

? ? ? ? public void displayImage(Context context, Object path, ImageView imageView) {

Glide.with(context).load((String) path).into(imageView);

? ? ? ? }

}

public static String getStringFromDrawableRes(Context context, int id) {

Resources resources = context.getResources();

? ? ? ? String path = ContentResolver.SCHEME_ANDROID_RESOURCE +"://"

? ? ? ? ? ? ? ? + resources.getResourcePackageName(id) +"/"

? ? ? ? ? ? ? ? + resources.getResourceTypeName(id) +"/"

? ? ? ? ? ? ? ? + resources.getResourceEntryName(id);

? ? ? ? return path;

? ? }

//當返回到activity,繼續(xù)

@Override

? ? protected void onResume() {

super.onResume();

? ? ? ? banner.start();

? ? }

//activity停止

@Override

? ? protected void onStop() {

super.onStop();

? ? ? ? banner.stopAutoPlay();

? ? }

4、運行即可!

注:

文章參考于

https://blog.csdn.net/qq_36621990/article/details/76020236

見前輩寫我自己不太好理解,也為了加強自己的記憶,我該可以下,記下來了。

小白變成,不喜勿噴,謝謝,如有不足,多多指教。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容