您的位置:首页 > 理论基础 > 计算机网络

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

2016-06-30 15:20 549 查看
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);
};


}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: