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

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);
        }
    };
};


@Override
protected 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;
}

@Override
public boolean isViewFromObject(View arg0, Object arg1) {
    return arg0==arg1;
}

@Override
public 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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值