viewpage轮播

来源:互联网 发布:js对象深拷贝 编辑:程序博客网 时间:2024/06/07 21:13
package com.example.lunbo2;

import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;

import android.app.Activity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Handler;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.ImageView.ScaleType;

import com.example.lunbo2.bean.newsdata;
import com.google.gson.Gson;
import com.nostra13.universalimageloader.core.ImageLoader;

public class MainActivity extends Activity {
ViewPager vp;
Handler handler=new Handler();
List<ImageView> listvp;
newsdata nd;
int index=0;
private mypager mypager;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        vp=(ViewPager) findViewById(R.id.vp);
        initdata();
        
        
        
        
    }
    private void initdata() {
        // TODO Auto-generated method stub
        new AsyncTask<String,String,String>() {

            @Override
            protected String doInBackground(String... params) {
                // TODO Auto-generated method stub
                Reader reader=getdata();
                Gson gson = new Gson();
                nd=gson.fromJson(reader,newsdata.class);
                Log.i("=====", nd.toString());
                return null;
            }

            @Override
            protected void onPostExecute(String result) {
                // TODO Auto-generated method stub
                super.onPostExecute(result);
                initvp();
            }
            
        }.execute();
        
    }
    protected void initvp() {
        // TODO Auto-generated method stub
        if (nd!=null) {
            listvp=new ArrayList<ImageView>();
            for (int i = 0; i < nd.getBanner().size(); i++) {
                ImageView iv=new ImageView(this);
                iv.setScaleType(ScaleType.FIT_XY);
                ImageLoader.getInstance().displayImage(nd.getBanner().get(i).getImage_url(), iv);
                listvp.add(iv);
                
                
            }
            
        }
        mypager = new mypager();
        vp.setAdapter(mypager);
        handler.postDelayed(new Runnable() {
            
            @Override
            public void run() {
                // TODO Auto-generated method stub
                index=vp.getCurrentItem();
                index++;
                vp.setCurrentItem(index);
                handler.postDelayed(this, 1000);
                
            }
        },1000);
        
        
    }
    class mypager extends PagerAdapter{

        @Override
        public int getCount() {
            // TODO Auto-generated method stub
            if (nd!=null) {
                return Integer.MAX_VALUE;
            }
            return 0;
        }

        @Override
        public boolean isViewFromObject(View arg0, Object arg1) {
            // TODO Auto-generated method stub
            return arg0==arg1;
        }
        @Override
        public Object instantiateItem(ViewGroup container, int position) {
            // TODO Auto-generated method stub
            index=position%nd.getBanner().size();
            container.addView(listvp.get(index));
            
            
            
            return listvp.get(index);
        }
        @Override
        public void destroyItem(ViewGroup container, int position, Object object) {
            // TODO Auto-generated method stub
            container.removeView((View) object);
        }
        
    }
    protected Reader getdata() {
        // TODO Auto-generated method stub
        Reader reader=null;
        try {
    URL url=new URL("http://result.eolinker.com/iYXEPGn4e9c6dafce6e5cdd23287d2bb136ee7e9194d3e9?uri=banner");
    HttpURLConnection  conn=(HttpURLConnection) url.openConnection();
    int code=conn.getResponseCode();
    if (code==200) {
        InputStream is=conn.getInputStream();
        reader=new InputStreamReader(is);
        
    }
            
            
            
        } catch (Exception e) {
            e.printStackTrace();
        }
        
        
        
        return reader;
        
    }

    

}

原创粉丝点击