自定義Banner(寫在Fragment裡了)
阿新 • • 發佈:2018-11-19
Fragment類裡新增 Banner
package com.example.lenovo.myapplication.Fragment.Fragment; import android.content.Context; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; import android.support.v4.view.ViewPager; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.Toast; //.01 import com.example.lenovo.myapplication.Bean.MyimgaeBean02; import com.example.lenovo.myapplication.Bean.MyloadBean; import com.example.lenovo.myapplication.Utils.Utils; import com.youth.banner.Banner; //.02 import com.youth.banner.BannerConfig; import com.example.lenovo.myapplication.R; import com.youth.banner.loader.ImageLoader; import java.util.ArrayList; import java.util.List; public class JijiangFragment extends Fragment { private Banner jijiang_banner; @Nullable @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.xiaoxi_jijiang,container,false); return view; } @Override public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); //獲得Banner這個試圖 jijiang_banner = view.findViewById(R.id.jijiang_banner); //為banner設定樣式 裡面的引數需要導包 包括Banner也要導包 //而我是手寫導包 參看.01 //banerconfig 導包 參考 .02 jijiang_banner.setBannerStyle(BannerConfig.CIRCLE_INDICATOR_TITLE); //為banner設定圖片載入器 jijiang_banner.setImageLoader(new ImageLoader() { @Override public void displayImage(Context context, Object path, ImageView imageView) { // 001 把路徑強轉-path MyimgaeBean02.NewsLists banner = (MyimgaeBean02.NewsLists) path; //用imageloder 賦值 com.nostra13.universalimageloader.core.ImageLoader.getInstance() //display .displayImage( banner.getPicUrl(),imageView ); } //002 當賦值圖片的時候 @Override public ImageView createImageView(Context context) { ImageView imageView = new ImageView(context); imageView.setScaleType(ImageView.ScaleType.CENTER_CROP); return imageView; } }); initData(); } private String urlStr="https://api.tianapi.com/wxnew/?key=c4aa776e0a51d57d6750511e2baa46b6&num=6&page=1"; private void initData() { Utils.getInstance().getRequest03(urlStr, MyimgaeBean02.class, new Utils.Callback<MyimgaeBean02>() { @Override public void onSuccess(MyimgaeBean02 o) { if(o.getCode()!=200){ Toast.makeText(getActivity(),"網路錯題",Toast.LENGTH_SHORT).show(); return; } //為banner設定圖片 jijiang_banner.setImages(o.getNewslist()); //為banner設定標題 裡面引數為下邊的方法 // jijiang_banner.setBannerTitles(getTitle(o)); //完畢 jijiang_banner.start(); } }); } //需要一個返回List的值 還需要呼叫方法的時候把這個 private List<String> getTitle(MyimgaeBean02 myimgaeBean02){ List<String> list = new ArrayList<>(); for (int i = 0; i < myimgaeBean02.getNewslist().size(); i++) { list.add(myimgaeBean02.getNewslist().get(i).getTitle()); } return list; } }
//Banner的Xml佈局
<?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <com.youth.banner.Banner android:layout_width="match_parent" android:layout_height="240dp" android:id="@+id/jijiang_banner"> </com.youth.banner.Banner> </android.support.constraint.ConstraintLayout>
以上功能實現 皆來自 Github 裡的依賴 compile 'com.youth.banner:banner:1.4.10'