1. 程式人生 > >Banner輪播圖(網路介面實現)

Banner輪播圖(網路介面實現)

依賴

implementation 'com.youth.banner:banner:1.4.10'
implementation 'com.github.bumptech.glide:glide:3.8.0'
implementation 'me.imid.swipebacklayout.lib:library:1.1.0'

xml佈局

<com.youth.banner.Banner
    android:id="@+id/banner"
    android:layout_width="match_parent"
    android:layout_height="150dp"
    android:layout_below="@id/textView"
    android:layout_marginTop="5dp"
    ></com.youth.banner.Banner>
定義GlideImageLoader
public class GlideImageLoader extends ImageLoader {
    @Override
    public void displayImage(Context context, Object path, ImageView imageView) {
        Glide.with(context).load(((BannerBean.DataBean)path).getIcon()).into(imageView);
    }
}

主頁面

public class MainActivity extends AppCompatActivity{
    private Banner banner;
  
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        getBannerData();
    }

    private void getBannerData() {
        banner=findViewById(R.id.banner);
        OK.getOk().doGet("https://www.zhaoapi.cn/quarter/getAd", new OkCallback() {
            @Override
            public void onUI(String json) {
                Gson gson=new Gson();

                final BannerBean bannerBean = gson.fromJson(json, BannerBean.class);

                List<BannerBean.DataBean> data = bannerBean.getData();

                banner.setImageLoader(new GlideImageLoader());
                banner.setImages(data);
                banner.start();

                banner.setOnBannerListener(new com.youth.banner.listener.OnBannerListener() {
                    @Override
                        public void OnBannerClick(int position) {
                        Intent intent = new Intent(MainActivity.this,WebViewActivity.class);
                        intent.putExtra("url", bannerBean.getData().get(position).getUrl());
                        startActivity(intent);


        }
    });


            }

            @Override
            public void onFailed(String json) {

            }
        });
   }

}

webview頁面

public class WebViewActivity extends AppCompatActivity{
    private WebView webView;
    private String url;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_web);
        //獲取資源id
        webView = (WebView) findViewById(R.id.webview);
        //獲得值
        Intent intent = getIntent();
        //傳值
        url = intent.getStringExtra("url");
        // Toast.makeText(WebActivity.this, url1,Toast.LENGTH_LONG).show();
        //賦值
        webView.loadUrl(url);

    }
}

xml佈局

<WebView
    android:id="@+id/webview"
    android:layout_weight="10"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"/>