无限轮播

来源:互联网 发布:淘宝宝贝图片怎么拍照 编辑:程序博客网 时间:2024/06/08 16:53
package test.bwie.com.zhoukao;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.LinearLayout;import android.widget.TextView;import com.google.gson.Gson;import com.nostra13.universalimageloader.core.ImageLoader;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 {    String p="http://v3.wufazhuce.com:8000/api/reading/index/?version=3.5.0&platform=android";    private ViewPager viewPager;    private LinearLayout linearLayout;    private GridView gridView;    private List<Bean.DataBean.EssayBean> list;    private List<ImageView> views;    private Handler handler= new Handler(){        @Override        public void handleMessage(Message msg) {            super.handleMessage(msg);            int num=msg.what;            switch (num){                case 1:                    int currentItem = viewPager.getCurrentItem();                    currentItem++;                    viewPager.setCurrentItem(currentItem);                    cc();                    break;            }        }    };    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        viewPager = (ViewPager) findViewById(R.id.vp);        linearLayout = (LinearLayout) findViewById(R.id.ll);        gridView = (GridView) findViewById(R.id.gv);        new Thread(){            private ByteArrayOutputStream baos;            @Override            public void run() {                try {                    URL url= new URL(p);                    HttpURLConnection connection= (HttpURLConnection) url.openConnection();                    connection.setRequestMethod("GET");                    connection.setConnectTimeout(5000);                    int responseCode = connection.getResponseCode();                    baos = new ByteArrayOutputStream();                    if (responseCode==200){                        InputStream inputStream= connection.getInputStream();                        byte[] bytes= new byte[1024];                        int len;                        while( (len=inputStream.read(bytes))!=-1){                            baos.write(bytes,0,len);                        }                        runOnUiThread(new Runnable() {                            @Override                            public void run() {                                Gson gson= new Gson();                                Bean bean = gson.fromJson(baos.toString(), Bean.class);                                //int bean;                                list = bean.getData().getEssay();                                //适配器                                MyAdapter adapter= new MyAdapter();                                viewPager.setAdapter(adapter);                                aa();                                bb();                                cc();                                dd();                            }                        });                    }                } catch (Exception e) {                    e.printStackTrace();                }            }        }.start();    }    class MyAdapter extends PagerAdapter{        @Override        public int getCount() {            return Integer.MAX_VALUE;        }        @Override        public boolean isViewFromObject(View view, Object object) {            return view==object;        }        @Override        public void destroyItem(ViewGroup container, int position, Object object) {            container.removeView((View) object);        }        @Override        public Object instantiateItem(ViewGroup container, int position) {            ImageView imageView= new ImageView(MainActivity.this);           imageView.setScaleType(ImageView.ScaleType.FIT_XY);            ImageLoader.getInstance().displayImage(list.get(position%list.size()).getAuthor().get(0).getWeb_url(),imageView);            container.addView(imageView);            return imageView ;        }    }    //画圆点    private void aa(){        views = new ArrayList<>();        if (views!=null){            views.clear();        }        for (int x=0;x<list.size();x++){            ImageView imageView= new ImageView(MainActivity.this);            LinearLayout.LayoutParams params= new LinearLayout.LayoutParams(10,10);            params.setMargins(10,0,10,0);            linearLayout.addView(imageView,params);            views.add(imageView);        }    }    //滑动监听    private void bb(){        viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {            @Override            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {            }            @Override            public void onPageSelected(int position) {                for (int i = 0; i <views.size() ; i++) {                    if (position%list.size()==i){                        views.get(position%list.size()).setImageResource(R.drawable.yes_fint);                    }else{                        views.get(i).setImageResource(R.drawable.no_fint);                    }                }            }            @Override            public void onPageScrollStateChanged(int state) {            }        });    }    private void cc(){        handler.sendEmptyMessageDelayed(1,2000);    }    private void dd(){        MyAdp adp= new MyAdp();        gridView.setAdapter(adp);    }    class  MyAdp extends BaseAdapter{        @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){                convertView=View.inflate(MainActivity.this,R.layout.layout,null);            }            ImageView imageView= (ImageView)convertView.findViewById(R.id.vv);            TextView textView= (TextView) convertView.findViewById(R.id.tv);            ImageLoader.getInstance().displayImage(list.get(position).getAuthor().get(0).getWeb_url(),imageView);            textView.setText(list.get(position).getAuthor().get(0).getUser_name());            return convertView;        }    }}//
Application里的内容
package test.bwie.com.zhoukao;import android.app.Application;import android.os.Environment;import com.nostra13.universalimageloader.cache.disc.impl.UnlimitedDiskCache;import com.nostra13.universalimageloader.core.ImageLoader;import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;import java.io.File;/** * Created by dellll on 2017.08.22. */public class MyApp extends Application {    @Override    public void onCreate() {        super.onCreate();        String path = Environment.getExternalStorageDirectory() + "/aa";        File file= new File(path);        ImageLoaderConfiguration configuration= new ImageLoaderConfiguration.Builder(this)                .diskCache( new UnlimitedDiskCache(file)).build();        ImageLoader.getInstance().init(configuration);    }}



别忘了导包,加权限