需要依赖
compile 'com.github.bumptech.glide:glide:3.7.0' compile 'com.android.support:support-v4:26.1.0'
compile 'com.google.code.gson:gson:2.8.2'
需要权限
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
package com.lixinyang.myadapter; import android.annotation.SuppressLint; import android.content.Intent; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.support.v7.app.AppCompatActivity; import android.widget.Toast; import com.google.gson.Gson; import com.lixinyang.myadapter.Bean.image; import com.lixinyang.myadapter.Views.MyViewPage; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import java.util.List; public class MainActivity extends AppCompatActivity { String path="http://120.27.23.105/ad/getAd"; @SuppressLint("HandlerLeak") Handler handler = new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); final List<image.DataBean> list= (List<image.DataBean>) msg.obj; viewById.GetAdapter(MainActivity.this,list); viewById.cc(new MyViewPage.aa() { @Override public void bb(int position) { if(list.get(position).getType()==0){ String url = list.get(position).getUrl(); Intent intent = new Intent(MainActivity.this,Main2Activity.class); intent.putExtra("url",url); startActivity(intent); }else{ Toast.makeText(MainActivity.this,"我要跳转到商品详情页",Toast.LENGTH_SHORT).show(); } } }); } }; private MyViewPage viewById; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); viewById = (MyViewPage) findViewById(R.id.mvp); getindata(path); } public void getindata(final String uri) { new Thread(){ @Override public void run() { super.run(); // URL u = null; try { URL u = new URL(uri); HttpURLConnection con = (HttpURLConnection) u.openConnection(); con.setConnectTimeout(3000); if (con.getResponseCode()==200){ InputStream inputStream = con.getInputStream(); String data = in2String(inputStream); //Log.d(TAG, "数据-----" + data); //解析数据 Gson gson = new Gson(); image bean = gson.fromJson(data, image.class); //Log.d(TAG, "gson----" + bean); List<image.DataBean> data1 = bean.getData(); // Log.d(TAG, "获取集合" + data1+"jiexiwangi"); //发送到主线程Hanlder Message message = new Message(); message.obj = data1; handler.sendMessage(message); } } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }.start(); } public String in2String(InputStream is) throws IOException { StringBuffer buffer = new StringBuffer(); BufferedReader br = new BufferedReader(new InputStreamReader(is)); String len = ""; while((len = br.readLine())!=null){ buffer.append(len); } return buffer.toString(); } }Main2Activity
package com.lixinyang.myadapter; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.webkit.WebSettings; import android.webkit.WebView; import android.webkit.WebViewClient; /** * author:Created by WangZhiQiang on 2018/1/2. */ public class Main2Activity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main2); WebView webView = (WebView) findViewById(R.id.webView); String url = getIntent().getStringExtra("url"); webView.loadUrl(url); //设置 webView.setWebViewClient(new WebViewClient());//不去跳转到浏览器 WebSettings settings = webView.getSettings();//获得设置页面的权限 settings.setJavaScriptCanOpenWindowsAutomatically(true);//s设置javascript弹窗 settings.setJavaScriptEnabled(true);//是安卓支持js脚本 } }
自定义MyViewPage
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout android:id="@+id/rl" xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="300px"> <android.support.v4.view.ViewPager android:layout_width="match_parent" android:layout_height="300px" android:id="@+id/vp"></android.support.v4.view.ViewPager> <LinearLayout android:orientation="horizontal" android:layout_centerHorizontal="true" android:id="@+id/ly" android:layout_alignParentBottom="true" android:layout_width="wrap_content" android:layout_height="40px"></LinearLayout> </RelativeLayout>MainActivity.xml
<?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout 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" tools:context="com.lixinyang.myadapter.MainActivity"> <com.lixinyang.myadapter.Views.MyViewPage android:id="@+id/mvp" android:layout_width="wrap_content" android:layout_height="wrap_content"></com.lixinyang.myadapter.Views.MyViewPage> </android.support.constraint.ConstraintLayout>Main2Activity.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"> <WebView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/webView"></WebView> </android.support.constraint.ConstraintLayout>自定义MyViewPage
package com.lixinyang.myadapter.Views; import android.content.Context; import android.os.Handler; import android.os.Message; import android.support.v4.view.PagerAdapter; import android.support.v4.view.ViewPager; import android.util.AttributeSet; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.RelativeLayout; import com.bumptech.glide.Glide; import com.lixinyang.myadapter.Bean.image; import com.lixinyang.myadapter.R; import java.util.ArrayList; import java.util.List; /** * author:Created by WangZhiQiang on 2018/1/2. */ public class MyViewPage extends RelativeLayout { Handler handler = new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); viewPager.setCurrentItem(viewPager.getCurrentItem()+1); abc(); } }; private ViewPager viewPager; private LinearLayout ly; private aa a; public MyViewPage(Context context) { this(context,null); } public MyViewPage(Context context, AttributeSet attrs) { this(context, attrs,0); } public MyViewPage(final Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); View view = LayoutInflater.from(context).inflate(R.layout.activity_adapter, this, true); viewPager = view.findViewById(R.id.vp); ly = view.findViewById(R.id.ly); } public void GetAdapter(final Context context, final List<image.DataBean> list){ MyAdapter myAdapter = new MyAdapter(context,list); viewPager.setAdapter(myAdapter); final List<ImageView> list1 = new ArrayList<ImageView>(); for (int i = 0; i < list.size(); i++) { ImageView imageView = new ImageView(context); imageView.setBackgroundResource(R.drawable.selects); imageView.setId(i); list1.add(imageView); ly.addView(imageView); } list1.get(0).setSelected(true); abc(); viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { position = position%list1.size(); for (int i = 0; i < list1.size(); i++) { if(i==position){ list1.get(position).setSelected(true); }else{ list1.get(i).setSelected(false); } } } @Override public void onPageScrollStateChanged(int state) { } }); /*viewPager.setOnClickListener(new OnClickListener() { @Override public void onClick(View view) { //for (int i = 0; i < list.size(); i++) { //if(i==view.getId()){ // Toast.makeText(context,"asdasd",Toast.LENGTH_SHORT).show(); // } //} } });*/ //viewPager. } public void abc(){ handler.sendEmptyMessageDelayed(0,1000); } class MyAdapter extends PagerAdapter{ private final Context context; private final List<image.DataBean> list; public MyAdapter(Context context, List<image.DataBean> list){ this.context = context; this.list = list; } @Override public int getCount() { return Integer.MAX_VALUE; } @Override public boolean isViewFromObject(View view, Object object) { return view==object; } @Override public Object instantiateItem(ViewGroup container, int position) { position = position%list.size(); ImageView imageView = new ImageView(context); //使用Glide加载图片 Glide.with(context).load(list.get(position%list.size()).getIcon()).into(imageView); //加入容器 container.addView(imageView); final int finalPosition = position; imageView.setOnClickListener(new OnClickListener() { @Override public void onClick(View view) { a.bb(finalPosition); } }); return imageView; } @Override public void destroyItem(ViewGroup container, int position, Object object) { // super.destroyItem(container, position, object); container.removeView((View) object); } } public interface aa{ void bb(int position); } public void cc(aa a){ this.a = a; } }