_20_04_21安卓輪播圖片

  1. 搭建輪播頁面:開源地址https://github.com/youth5201314/banner

<com.youth.banner.Banner
android:id="@+id/banner_home_header"
android:layout_width=“match_parent”
android:layout_height=“240dp”/>
3. 添加輪播插件:
4. //開源輪播控件
implementation ‘com.youth.banner:banner:2.0.2’
5. 在安卓節點添加一段兼容性的代碼:
6. compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
在這裏插入圖片描述
8. 然後,在服務端準備好輪播圖片,並把輪播圖片的名字存進去數據庫,
9. 準備好查詢方法,聲明一個VO,爲的是把屬性的首字母在傳輸到App上是小寫的:

在這裏插入圖片描述

在這裏插入圖片描述
12. 然後通過App來發送請求:
13. 同樣,在App接收,我們也用一個類接收,實質是一樣的,就是樣子長得不一樣:
在這裏插入圖片描述
在這裏插入圖片描述
16. Get和set長得和vs中的有點不一樣;
17. 再聲明一個類:HomeBannerAdapter
18. public class HomeBannerAdapter extends BannerAdapter<BannerBean, HomeBannerAdapter.BannerViewHolder> {

private Context context;

//構造函數  傳遞數據到適配器
public HomeBannerAdapter(List<BannerBean> mDatas,Context context) {
    //設置數據,也可以調用banner提供的方法,或者自己在adapter中實現
    super(mDatas);
    this.context=context;
}

//創建ViewHolder,可以用viewType這個字段來區分不同的ViewHolder
@Override
public BannerViewHolder onCreateHolder(ViewGroup parent, int viewType) {
    ImageView imageView = new ImageView(parent.getContext());
    //注意,必須設置爲match_parent,這個是viewpager2強制要求的
    imageView.setLayoutParams(new ViewGroup.LayoutParams(
            ViewGroup.LayoutParams.MATCH_PARENT,
            ViewGroup.LayoutParams.MATCH_PARENT));
    imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
    return new BannerViewHolder(imageView);
}

@Override
public void onBindView(BannerViewHolder holder,BannerBean data, int position, int size) {
    //holder.imageView.setImageResource(data.imageRes);
    String imageUrl= ServiceUrls.getMainPageBannerImgUrl(data.getBannerPicture());
    //使用Glide加載圖片 最簡單的用戶
    Glide.with(context)
            .load(imageUrl)
            .into(holder.imageView);
}

class BannerViewHolder extends RecyclerView.ViewHolder {
    ImageView imageView;

    public BannerViewHolder(@NonNull ImageView view) {
        super(view);
        this.imageView = view;
    }
}

}
之後,再Build.gradle中添加引用implementation 在這裏插入圖片描述
20. 由於顯示網絡圖片,要添加一個框架:
21. //開源圖片加載框架 ,自帶緩存的
implementation ‘com.github.bumptech.glide:glide:4.11.0’
annotationProcessor ‘com.github.bumptech.glide:compiler:4.11.0’
22. 然後,在子頁面進行輪播圖片綁定:
在這裏插入圖片描述
24. 然後,輪播就做好了;在這裏插入圖片描述
26. 輪播完成之後,我們最後需要藉助生命週期來輔助:
27. @Override
public void onStart() {
super.onStart();
//開始輪播
bannerHomeHeader.start();
}

@Override
public void onStop() {
super.onStop();
//停止輪播
bannerHomeHeader.stop();
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章