ViewpagerBanner


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;
    }


}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SuperMonsterH

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值