Viewpager和GridView

来源:互联网 发布:网络直播摄像头哪种好 编辑:程序博客网 时间:2024/05/18 02:16

主线程的代码

package com.example.caolilu20170821;import android.os.Handler;import android.os.Message;import android.support.v4.view.PagerAdapter;import android.support.v4.view.ViewPager;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.GridView;import android.widget.ImageView;import android.widget.TextView;import android.widget.Toast;import com.nostra13.universalimageloader.core.DisplayImageOptions;import com.nostra13.universalimageloader.core.ImageLoader;import org.json.JSONArray;import org.json.JSONException;import org.json.JSONObject;import java.io.ByteArrayOutputStream;import java.io.InputStream;import java.net.HttpURLConnection;import java.net.MalformedURLException;import java.net.URL;import java.util.ArrayList;import java.util.List;public class MainActivity extends AppCompatActivity {    private ViewPager vp;    private GridView gv;    private List<Userbean> list=new ArrayList<Userbean>();    private Handler handler=new Handler(){        @Override        public void handleMessage(Message msg) {            super.handleMessage(msg);            int item = vp.getCurrentItem();            item++;            vp.setCurrentItem(item);            send();        }    };    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        vp = (ViewPager) findViewById(R.id.vp);        gv = (GridView) findViewById(R.id.gv);        init();    }    private void init(){        new Thread(){            private ByteArrayOutputStream outputStream;            String path="http://v3.wufazhuce.com:8000/api/reading/index/";            @Override            public void run() {                 super.run();                try {                    URL url = new URL(path);                    HttpURLConnection connction= (HttpURLConnection) url.openConnection();                    connction.setRequestMethod("GET");                    connction.setConnectTimeout(5000);                    int code = connction.getResponseCode();                    if (code==200){                        InputStream inputStream = connction.getInputStream();                        outputStream = new ByteArrayOutputStream();                        byte[] read=new byte[1024];                        int le=-1;                        while((le=inputStream.read(read))!=-1){                            outputStream.write(read,0,le);                        }                    }                } catch (Exception e) {                    e.printStackTrace();                }                runOnUiThread(new Runnable() {                    @Override                    public void run() {                        //Toast.makeText(MainActivity.this,outputStream.toString(),Toast.LENGTH_LONG).show();                        try {                            JSONObject jsonObject = new JSONObject(outputStream.toString());                            JSONObject data = jsonObject.getJSONObject("data");                            JSONArray essay = data.getJSONArray("essay");                            for (int x=0;x<essay.length();x++){                                JSONObject object = essay.getJSONObject(x);                                JSONArray author = object.getJSONArray("author");                                for (int a=0;a<author.length();a++){                                    JSONObject object1 = author.getJSONObject(a);                                    String user_name = object1.getString("user_name");                                    String web_url = object1.getString("web_url");                                    Userbean userbean = new Userbean();                                    userbean.setUser_name(user_name);                                    userbean.setWeb_url(web_url);                                    list.add(userbean);                                    vp.setAdapter(new Myter());                                    vp.setCurrentItem(10000);                                    gv.setAdapter(new Myerer());                                }                            }                        } catch (Exception e) {                            e.printStackTrace();                        }                        runOnUiThread(new Runnable() {                            @Override                            public void run() {                                send();                            }                        });                    }                });            }        }.start();    }    private void send(){        handler.sendEmptyMessageDelayed(0,2000);    }    class Myerer extends BaseAdapter{        private Hnader hnader;        @Override        public int getCount() {            return list.size();        }        @Override        public Object getItem(int position) {            return null;        }        @Override        public long getItemId(int position) {            return 0;        }        @Override        public View getView(int position, View convertView, ViewGroup parent) {            if (convertView==null){                hnader = new Hnader();               convertView= View.inflate(MainActivity.this,R.layout.item,null);               hnader.image= (ImageView) convertView.findViewById(R.id.imagex);               hnader.text= (TextView) convertView.findViewById(R.id.textx);                convertView.setTag(hnader);            }else{                hnader= (Hnader) convertView.getTag();            }            Userbean userbean = list.get(position);            hnader.text.setText(userbean.getUser_name());            ImageLoader.getInstance().displayImage(userbean.getWeb_url(),hnader.image);            return convertView;        }        class Hnader{            ImageView image;            TextView text;        }    }    class Myter extends PagerAdapter{        @Override        public int getCount() {            return Integer.MAX_VALUE;        }        @Override        public Object instantiateItem(ViewGroup container, int position) {            ImageView view = new ImageView(MainActivity.this);            view.setScaleType(ImageView.ScaleType.FIT_XY);            DisplayImageOptions displayImageOptions = new DisplayImageOptions.Builder()            .cacheOnDisk(true)            .build();            ImageLoader.getInstance().displayImage(list.get(position%list.size()).getWeb_url(),view);            container.addView(view);            return view;        }        @Override        public void destroyItem(ViewGroup container, int position, Object object) {            container.removeView((View) object);        }        @Override        public boolean isViewFromObject(View view, Object object) {            return view==object;        }    }}主布局
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical"    >    <android.support.v4.view.ViewPager        android:layout_width="match_parent"        android:layout_height="200dp"        android:id="@+id/vp"></android.support.v4.view.ViewPager>     <GridView         android:layout_width="match_parent"         android:layout_height="wrap_content"         android:id="@+id/gv"         android:numColumns="2"></GridView></LinearLayout>

 

原创粉丝点击