BannerDemo

来源:互联网 发布:彩票app源码下载 编辑:程序博客网 时间:2024/05/21 06:37
package com.bwie.bannerdemo;

import android.graphics.Bitmap;
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.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;

import com.bwie.bannerdemo.utils.LoadImageAsyncTask;

import java.util.ArrayList;
import java.util.List;
import java.util.Timer;
import java.util.TimerTask;

public class MainActivity extends AppCompatActivity {

    private ViewPager vp;
    private List<String> imgeAddress = new ArrayList<String>();
    private int index = 0;

    Handler handler = new Handler() {
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            if (msg.what == 0) {
                int m = (int) msg.obj;

                vp.setCurrentItem(m % imgeAddress.size());
            }
        }
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        vp = (ViewPager) findViewById(R.id.vp);

        //准备好网络图片地址
        imgeAddress.add("http://img.juhe.cn/cookbook/s/1/45_c25e0cedd2012f45.jpg");
        imgeAddress.add("http://img.juhe.cn/cookbook/s/1/45_eb68327980f022dd.jpg");
        imgeAddress.add("http://img.juhe.cn/cookbook/s/1/45_8e0cf83cb7306281.jpg");
        vp.setAdapter(new MyAdapter());

        autoPlay();

    }

    class MyAdapter extends PagerAdapter {


        @Override
        public int getCount() {
            // return Integer.MAX_VALUE;
            return imgeAddress.size();
        }


        @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(getApplicationContext());
            //imageView.setImageResource(R.mipmap.ic_launcher);

            new LoadImageAsyncTask(new LoadImageAsyncTask.CallBackListener() {
                @Override
                public void callBack(Bitmap bitmap) {
                    if (bitmap != null) {
                        imageView.setImageBitmap(bitmap);
                    } else {
                        imageView.setImageResource(R.mipmap.ic_launcher);
                    }
                }
            }).execute(imgeAddress.get(position % imgeAddress.size()));
            container.addView(imageView);
            return imageView;
        }
    }

    public void autoPlay() {

   /*     while (true) {
            vp.setCurrentItem(index);
            try {
                new Thread().sleep(6000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            System.out.println("index--------" + index);
            index++;
        }*/

        Timer timer = new Timer();
        timer.scheduleAtFixedRate(new TimerTask() {
            @Override
            public void run() {
                Message message = new Message();
                message.what = 0;
                message.obj = index;
                System.out.println("index--------" + index);
                handler.sendMessage(message);
                index++;

            }
        }, 3000, 3000);
    }


}

原创粉丝点击