您的位置:首页 > 其它

ViewPager无限轮播

2017-09-22 15:33 344 查看
import java.util.ArrayList;

import java.util.List;

import java.util.Timer;

import java.util.TimerTask;

import android.app.Activity;

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.view.View;

import android.view.ViewGroup;

import android.view.Window;

public class MainActivity extends Activity {

    private static final int FLAG = 100;

    private ViewPager viewpager;

    private List<View> list;

    private Timer timer;

    private Handler handler = new Handler() {

        public void handleMessage(Message msg) {

            switch (msg.what) {

            case FLAG:

                int index = (Integer) msg.obj;

                viewpager.setCurrentItem(index);

                break;

            default:

                break;

            }

        };

    };

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        // 设置activity无标题

        requestWindowFeature(Window.FEATURE_NO_TITLE);

        setContentView(R.layout.activity_main);

        viewpager = (ViewPager) findViewById(R.id.viewpager);

        list = new ArrayList<View>();

        View view1 = View.inflate(this, R.layout.item_viewpage_01, null);

        View view2 = View.inflate(this, R.layout.item_viewpage_02, null);

        View view3 = View.inflate(this, R.layout.item_viewpage_03, null);

        View view4 = View.inflate(this, R.layout.item_viewpage_04, null);

        list.add(view1);

        list.add(view2);

        list.add(view3);

        list.add(view4);

        viewpager.setAdapter(new PagerAdapter() {

            @Override

            public boolean isViewFromObject(View arg0, Object arg1) {

                return arg0 == arg1;

            }

            @Override

            public int getCount() {

                return list.size();

            }

            @Override

            public void destroyItem(ViewGroup container, int position, Object object) {

                container.removeView((View) object);

            }

            @Override

            public Object instantiateItem(ViewGroup container, int position) {

                View v = list.get(position);

                container.addView(v);

                return v;

            }

        });

        timer = new Timer();

        timer.schedule(new TimerTask() {

            int index = 0;

            @Override

            public void run() {

                if (index < list.size() - 1) {

                    index++;

                } else if (index == list.size() - 1) {

                    index = 0;

                }

                Message msg = Message.obtain();

                msg.what = FLAG;

                msg.obj = index;

                handler.sendMessage(msg);

            }

        }, 3000, 3000);

    }

    @Override

    protected void onDestroy() {

        super.onDestroy();

        // 当Activity结束的时候,把计时器终止掉

        if (timer != null) {

            timer.cancel();

        }

    }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: