获取网络图片httpclicent___AsyncTask-小圆点图片轮播
如果做无限轮播,只需要将适配的数量改成Integer.MAX.VALUES
所有用到position的地方到%集合.size【position%data.size()】;
import java.io.ByteArrayOutputStream;
import java.io.IOException;import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import android.app.Activity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Handler;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.util.Log;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.LinearLayout.LayoutParams;
import android.widget.ListView;
import com.google.gson.Gson;
import com.zmy.a10_.WeiXin.Lists;
public class MainActivity extends Activity {
private ViewPager viewPager;
private ListView listView;
private LinearLayout ll;
private String path;
private static final String TAG = "MainActivity";
private List<String> list_image4;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
viewPager = (ViewPager) findViewById(R.id.viewPager);
listView = (ListView) findViewById(R.id.listView);
ll = (LinearLayout) findViewById(R.id.ll);
info();
}
private void info() {
path = "http://v.juhe.cn/weixin/query?key=0917c812f187b92e025c9b7c2d4e59b5&pno=2";
MyAsyncTask myAsyncTask=new MyAsyncTask();
myAsyncTask.execute();
}
//异步类MyAsyncTask
class MyAsyncTask extends AsyncTask<Void, Void, String>{@Override
protected String doInBackground(Void... params) {
try {
// TODO Auto-generated method stub
HttpClient httpClient = new DefaultHttpClient();
HttpGet httpGet = new HttpGet(path);
HttpResponse httpResponse = httpClient.execute(httpGet);
int statusCode = httpResponse.getStatusLine().getStatusCode();
if(statusCode==200){
InputStream inputStream = httpResponse.getEntity().getContent();
String str = Streamtostr(inputStream);
return str;
}
} catch (Exception e) {
// TODO: handle exception
}
return null;
}
@Override
protected void onPostExecute(String json) {
// TODO Auto-generated method stub
Gson gson=new Gson();
WeiXin weiXin = gson.fromJson(json, WeiXin.class);
ArrayList<Lists> list = weiXin.result.list;
list_image4 = new ArrayList<String>();
for(int i=0;i<4;i++){
list_image4.add(list.get(i).firstImg);
}
viewPager.setAdapter(new MyPagerAdapter(MainActivity.this,list_image4));
sends();
mall();
//Viewpager监听滑动小圆点也滑动
viewPager.setOnPageChangeListener(new OnPageChangeListener() {
@Override
public void onPageSelected(int position) {
// TODO Auto-generated method stub
for(int i=0;i<list_image4.size();i++){
if((position%list_image4.size())==i){
list_im.get(i).setImageDrawable(getResources().getDrawable(R.drawable.true_shape));
}else{
list_im.get(i).setImageDrawable(getResources().getDrawable(R.drawable.false_shape));
}
}
}
@Override
public void onPageScrolled(int position, float positionOffset,
int positionOffsetPixels) {
// TODO Auto-generated method stub
}
@Override
public void onPageScrollStateChanged(int state) {
// TODO Auto-generated method stub
}
});
listView.setAdapter(new MyAdapter(MainActivity.this,list));
super.onPostExecute(json);
}
};
//Streamtostr方法 将获取的流转换成字符串
private String Streamtostr(InputStream inputStream) throws IOException {// TODO Auto-generated method stub
ByteArrayOutputStream arrayOutputStream=new ByteArrayOutputStream();
byte[]buffer=new byte[1024];
int len=0;
while((len=inputStream.read(buffer))!=-1){
arrayOutputStream.write(buffer, 0, len);
}
return arrayOutputStream.toString();
}
//发送handler线程
// TODO Auto-generated method stub
handler.sendEmptyMessageDelayed(0, 1000);
}
Handler handler=new Handler(){
public void handleMessage(android.os.Message msg) {
int currentItem = viewPager.getCurrentItem();
currentItem++;
viewPager.setCurrentItem(currentItem);
handler.sendEmptyMessageDelayed(0, 1000);
};
};
private ImageView imageView;
private List<ImageView> list_im;
//小圆点轮播
private void mall() {list_im = new ArrayList<ImageView>();
list_im.clear();
ll.removeAllViews();
for(int i=0;i<list_image4.size();i++) {
imageView = new ImageView(MainActivity.this);
if(i==0){
imageView.setImageDrawable(getResources().getDrawable(R.drawable.true_shape));
}else{
imageView.setImageDrawable(getResources().getDrawable(R.drawable.false_shape));
}
LayoutParams params=new LayoutParams(20, 20);
params.setMargins(5, 0, 5, 0);
ll.addView(imageView, params);
list_im.add(imageView);
}
}
}