ViewPager无限轮播图+小圆点+HttpURLConnection +handler+Thread

来源:互联网 发布:剑网3捏脸数据 编辑:程序博客网 时间:2024/06/07 17:50

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.LinearLayout.LayoutParams;
import com.google.gson.Gson;
import com.nostra13.universalimageloader.core.ImageLoader;

public class DetailActivity extends Activity {
private Gallery[] galleries;
private ViewPager vp;
private LinearLayout ll;
private ArrayList ivList;

Handler handler=new Handler(){    public void handleMessage(android.os.Message msg) {        if (msg.what==0) {            //msg.obj;            //设置适配器            vp.setAdapter(new MyPagerAdapter(DetailActivity.this));            //设置监听            vp.setOnPageChangeListener(new OnPageChangeListener() {                public void onPageSelected(int arg0) {                    for (int i = 0; i < ivList.size(); i++) {                        if (arg0%5==i) {                            ivList.get(i).setImageResource(R.drawable.dot_select);                        }else{                            ivList.get(i).setImageResource(R.drawable.dot);                        }                    }                }                public void onPageScrolled(int arg0, float arg1, int arg2) {                }                public void onPageScrollStateChanged(int arg0) {                }            });        }        if (msg.what==1) {            int currentItem = vp.getCurrentItem();            currentItem++;            vp.setCurrentItem(currentItem);            handler.sendEmptyMessageDelayed(1, 2000);        }    };};@Overrideprotected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_detail);    vp = (ViewPager) findViewById(R.id.vp);    ll = (LinearLayout) findViewById(R.id.ll);    //初始化小圆点    initDot();    getData("http://...");    //实现轮播    handler.sendEmptyMessageDelayed(1, 2000);}public void initDot(){    ivList = new ArrayList<ImageView>();    for (int i = 0; i <galleries.length; i++) {        ImageView iv = new ImageView(this);        if (i==0) {            iv.setImageResource(R.drawable.dot_select);         }else{            iv.setImageResource(R.drawable.dot);            }        ivList.add(iv);        LayoutParams params=new LayoutParams(20, 20);        params.setMargins(5, 0, 5, 0);        ll.addView(iv, params);    }}//获取网络数据private void getData(final String string) {    new Thread(new Runnable() {        public void run() {            try {                URL url = new URL(string);                HttpURLConnection connection = (HttpURLConnection) url.openConnection();                int responseCode = connection.getResponseCode();                if (responseCode==200) {                    InputStream inputStream = connection.getInputStream();                    BufferedReader br = new BufferedReader(new InputStreamReader(inputStream));                    Gson g = new Gson();                    goodsDtails gd = g.fromJson(br, goodsDtails.class);                    handler.obtainMessage(0, gd).sendToTarget();                }            } catch (Exception e) {                e.printStackTrace();            }        }    }).start();}

}

//MyPagerAdapter

public class MyPagerAdapter extends PagerAdapter {
private Context context;
private Gallery[] galleries;

public MyPagerAdapter(Context context, Gallery[] galleries) {    super();    this.context = context;    this.galleries = galleries;}@Overridepublic boolean isViewFromObject(View arg0, Object arg1) {    return arg0==arg1;}@Overridepublic int getCount() {    return Integer.MAX_VALUE;}public Object instantiateItem(android.view.ViewGroup container, int position) {    ImageView iv = new ImageView(context);    ImageLoader.getInstance().displayImage(galleries[position%galleries.length].normal_url, iv);    container.addView(iv);    return iv;};public void destroyItem(android.view.ViewGroup container, int position, Object object) {    container.removeView((View) object);};

}

1 0