ViewpagerBanner

来源:互联网 发布:java 画流程图 编辑:程序博客网 时间:2024/05/22 05:08
import android.graphics.Bitmap;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.support.v4.view.PagerAdapter;import android.support.v4.view.ViewPager;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.view.ViewGroup;import android.widget.ImageView;import com.hgz.test.viewpagerbannerdemo.utils.ImageLoadTools;import java.util.ArrayList;public class MainActivity extends AppCompatActivity {    private ArrayList<String> imageAddress;    private int index = 0;    private ViewPager viewPager;    private Handler handler=new Handler(){        @Override        public void handleMessage(Message msg) {            super.handleMessage(msg);            switch (msg.what){                case 1:                {                    //界面切换                    viewPager.setCurrentItem(index);                }                break;            }        }    };    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        viewPager = (ViewPager) findViewById(R.id.viewpager);        imageAddress = new ArrayList<String>();        //准备好网络图片地址        imageAddress.add("http://img.juhe.cn/cookbook/s/1/45_c25e0cedd2012f45.jpg");        imageAddress.add("http://img.juhe.cn/cookbook/s/1/45_eb68327980f022dd.jpg");        imageAddress.add("http://img.juhe.cn/cookbook/s/1/45_8e0cf83cb7306281.jpg");        MyAdapter adapter = new MyAdapter();        //设置适配器        viewPager.setAdapter(adapter);        autoPlay();    }    private class MyAdapter extends PagerAdapter {        @Override        public int getCount() {            return Integer.MAX_VALUE;        }        @Override        public boolean isViewFromObject(View view, Object object) {            return view==object;        }        @Override        public void destroyItem(ViewGroup container, int position, Object object) {            container.removeView((View) object);        }        @Override        public Object instantiateItem(ViewGroup container, int position) {            final ImageView imageView = new ImageView(MainActivity.this);            new ImageLoadTools(new ImageLoadTools.ImageLoadListeners() {                @Override                public void imageLoad(Bitmap bitmap) {                    if (bitmap!=null){                        imageView.setImageBitmap(bitmap);                    }else{                        imageView.setImageResource(R.mipmap.ic_launcher);                    }                }            }).execute(imageAddress.get(position % imageAddress.size()));            container.addView(imageView);            return imageView;        }    }    /**     * 轮播     */    private void autoPlay(){        new Thread(){            @Override            public void run() {                super.run();                while(true){                    try {                        index++;                        int index1=index%imageAddress.size();                        Thread.sleep(3000);                    } catch (Exception e) {                        e.printStackTrace();                    }                    handler.sendEmptyMessage(1);                }            }        }.start();    }}

utils类

import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.os.AsyncTask;import java.io.InputStream;import java.net.HttpURLConnection;import java.net.URL;public class ImageLoadTools extends AsyncTask<String,Void,Bitmap>{    private ImageLoadListeners imageLoadListeners;    public ImageLoadTools(ImageLoadListeners imageLoadListeners) {        this.imageLoadListeners=imageLoadListeners;    }    public interface ImageLoadListeners{        void imageLoad(Bitmap bitmap);    }    @Override    protected void onPostExecute(Bitmap bitmap) {        super.onPostExecute(bitmap);        imageLoadListeners.imageLoad(bitmap);    }    @Override    protected Bitmap doInBackground(String... params) {        try {            String param = params[0];            URL url = new URL(param);            HttpURLConnection connection = (HttpURLConnection) url.openConnection();            connection.setRequestMethod("GET");            connection.setConnectTimeout(5000);            connection.setReadTimeout(5000);            int code = connection.getResponseCode();            if (code==HttpURLConnection.HTTP_OK){                InputStream is = connection.getInputStream();                Bitmap bitmap = BitmapFactory.decodeStream(is);                return bitmap;            }        } catch (Exception e) {            e.printStackTrace();        }        return null;    }}

原创粉丝点击