获取网络图片httpclicent--AsyncTask-小圆点图片轮播

获取网络图片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线程

    private void sends() {
        // 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);

            
         }
    }
    
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值