xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.bwie.xiaqin.youkaozjlx1.WebActivity"> <android.support.v4.view.ViewPager android:id="@+id/page" android:layout_width="match_parent" android:layout_height="200dp" android:layout_weight="4" /> <WebView android:id="@+id/web_view" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="6" ></WebView> </LinearLayout>
bean.java
package com.bwie.xiaqin.bean; import java.util.List; /** * Created by lenovo on 2018/8/24. */ public class MyPageBean { /** * code : 200 * body : {"result":[{"BarnerPic":"https://yunxue-bucket.oss-cn-shanghai.aliyuncs.com/imgurl/banner/banner_1534744481374.jpg","BarnerName":"企业大学上线","BarnerType":1,"JumpType":0,"Url":"http://yunxuekeji.com/"},{"BarnerPic":"https://yunxue-bucket.oss-cn-shanghai.aliyuncs.com/imgurl/banner/banner_1533267193841.jpg","BarnerName":"从跟风者到破风手,你要了解的八大创新原则","BarnerType":1,"JumpType":1,"Url":"1357"},{"BarnerPic":"https://yunxue-bucket.oss-cn-shanghai.aliyuncs.com/imgurl/banner/banner_1533266571976.jpg","BarnerName":"《销售技巧》:业务员没客户的7大原因","BarnerType":1,"JumpType":1,"Url":"1356"}]} * message : Succes! */ private int code; private BodyBean body; private String message; public int getCode() { return code; } public void setCode(int code) { this.code = code; } public BodyBean getBody() { return body; } public void setBody(BodyBean body) { this.body = body; } public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } public static class BodyBean { private List<ResultBean> result; public List<ResultBean> getResult() { return result; } public void setResult(List<ResultBean> result) { this.result = result; } public static class ResultBean { /** * BarnerPic : https://yunxue-bucket.oss-cn-shanghai.aliyuncs.com/imgurl/banner/banner_1534744481374.jpg * BarnerName : 企业大学上线 * BarnerType : 1 * JumpType : 0 * Url : http://yunxuekeji.com/ */ private String BarnerPic; private String BarnerName; private int BarnerType; private int JumpType; private String Url; public String getBarnerPic() { return BarnerPic; } public void setBarnerPic(String BarnerPic) { this.BarnerPic = BarnerPic; } public String getBarnerName() { return BarnerName; } public void setBarnerName(String BarnerName) { this.BarnerName = BarnerName; } public int getBarnerType() { return BarnerType; } public void setBarnerType(int BarnerType) { this.BarnerType = BarnerType; } public int getJumpType() { return JumpType; } public void setJumpType(int JumpType) { this.JumpType = JumpType; } public String getUrl() { return Url; } public void setUrl(String Url) { this.Url = Url; } } } }
HttpUtils.java
package com.bwie.xiaqin.utils; import android.os.AsyncTask; import com.google.common.io.CharStreams; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; /** * Created by lenovo on 2018/8/24. */ public class HttpUtils { private static final HttpUtils ourInstance = new HttpUtils(); public static HttpUtils getInstance() { return ourInstance; } public HttpUtils() { } private Netcallback netcallback; public interface Netcallback { void onccess(String s); } public void setNetcallback(Netcallback netcallback) { this.netcallback = netcallback; } public void getServiceData(String url){ new LotaData().execute(url); } class LotaData extends AsyncTask<String,Void,String>{ @Override protected String doInBackground(String... strings) { try { URL url = new URL(strings[0]); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setConnectTimeout(5000); connection.setReadTimeout(5000); connection.setRequestMethod("GET"); if (connection.getResponseCode() == HttpURLConnection.HTTP_OK){ return CharStreams.toString(new InputStreamReader(connection.getInputStream(),"utf-8")); } } catch (Exception e) { e.printStackTrace(); } return null; } @Override protected void onPostExecute(String s) { super.onPostExecute(s); if (netcallback != null){ netcallback.onccess(s); } } } }
MyPageAdapter.java
package com.bwie.xiaqin.adapter; import android.support.annotation.NonNull; import android.support.v4.view.PagerAdapter; import android.view.View; import android.view.ViewGroup; import android.view.ViewParent; import android.widget.ImageView; import com.bwie.xiaqin.bean.MyPageBean; import java.util.List; /** * Created by lenovo on 2018/8/24. */ public class MyPageAdapter extends PagerAdapter { private List<ImageView> list; public MyPageAdapter(List<ImageView> list) { this.list = list; } @Override public int getCount() { return Integer.MIN_VALUE; } @Override public boolean isViewFromObject(@NonNull View view, @NonNull Object object) { return view == object; } @NonNull @Override public Object instantiateItem(@NonNull ViewGroup container, int position) { ImageView imageView = list.get(position % list.size()); ViewGroup parent = (ViewGroup) imageView.getParent(); if (parent!=null){ parent.removeView(imageView); } container.addView(imageView); return imageView; } @Override public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) { container.removeView((View) object); } }
webActivity.java
package com.bwie.xiaqin.youkaozjlx1; import android.os.Handler; import android.os.Message; import android.support.v4.view.ViewPager; import android.os.Bundle; import android.webkit.WebChromeClient; import android.webkit.WebView; import android.webkit.WebViewClient; import android.widget.ImageView; import com.bwie.xiaqin.Base.BaseActivity; import com.bwie.xiaqin.adapter.MyPageAdapter; import com.bwie.xiaqin.bean.MyPageBean; import com.bwie.xiaqin.utils.HttpUtils; import com.google.gson.Gson; import com.nostra13.universalimageloader.core.ImageLoader; import java.util.ArrayList; import java.util.List; public class WebActivity extends BaseActivity implements HttpUtils.Netcallback { private List<ImageView> list = new ArrayList<>(); private HttpUtils httpUtils; private ViewPager page; private String url; private WebView web_view; private String peath = "https://api.yunxuekeji.cn/yunxue_app_api/content/getIndexBanner/1"; private Handler handler = new Handler(){ @Override public void handleMessage(Message msg) { switch (msg.what){ case 1: int currentItem = page.getCurrentItem(); currentItem++; page.setCurrentItem(currentItem); sendEmptyMessageDelayed(1,2000); break; } } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_web); httpUtils = HttpUtils.getInstance(); httpUtils.getServiceData(peath); httpUtils.setNetcallback(this); initview(); } private void initview() { page = findViewById(R.id.page); web_view = findViewById(R.id.web_view); url = getIntent().getStringExtra("url"); web_view.setWebChromeClient(new WebChromeClient()); web_view.setWebViewClient(new WebViewClient()); web_view.loadUrl(url); } @Override public void onccess(String s) { Gson gson = new Gson(); MyPageBean myPageBean = gson.fromJson(s, MyPageBean.class); for (MyPageBean.BodyBean.ResultBean resultBean:myPageBean.getBody().getResult()){ ImageView imageView = new ImageView(this); imageView.setScaleType(ImageView.ScaleType.FIT_XY); ImageLoader.getInstance().displayImage(resultBean.getBarnerPic(),imageView); list.add(imageView); } page.setAdapter(new MyPageAdapter(list)); handler.sendEmptyMessageDelayed(1,2000); } }