viewPager Handler 的無限輪播

private ViewPager mVp;
int[] imgs = {R.drawable.c, R.drawable.b, R.drawable.azxc, R.drawable.awqe};
int i = 0;
Handler handler = new Handler() {
    @Override
    public void handleMessage(Message msg) {
        super.handleMessage(msg);
        mVp.setCurrentItem(i);
        i++;
    }
};

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    initView();
    tupian();
}

private void tupian() {
    //定時器,每過一秒發送一次
    new Timer().schedule(new TimerTask() {
        @Override
        public void run() {
            handler.sendEmptyMessage(0);
        }
    }, 0, 1000);
    //設置適配器
    mVp.setAdapter(new MyPageAdapter());
    //設置viewpager的滑動事件
    mVp.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
        @Override
        public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

        }

        @Override
        public void onPageSelected(int position) {
            switch (position % imgs.length) {
                case 0:
                    RadioButton rb1 = (RadioButton) findViewById(R.id.rb1);
                    rb1.setChecked(true);
                    break;
                case 1:
                    RadioButton rb2 = (RadioButton) findViewById(R.id.rb2);
                    rb2.setChecked(true);
                    break;
                case 2:
                    RadioButton rb3 = (RadioButton) findViewById(R.id.rb3);
                    rb3.setChecked(true);
                    break;
                case 3:
                    RadioButton rb4 = (RadioButton) findViewById(R.id.rb4);
                    rb4.setChecked(true);
                    break;
            }
        }

        @Override
        public void onPageScrollStateChanged(int state) {

        }
    });

private class MyPageAdapter extends PagerAdapter {
    @Override
    public int getCount() {
        return Integer.MAX_VALUE;
    }

    @Override
    public boolean isViewFromObject(View view, Object object) {
        return view == object;
    }

    @Override
    public Object instantiateItem(ViewGroup container, int position) {
        ImageView imageView = new ImageView(MainActivity.this);
        imageView.setImageResource(imgs[position % imgs.length]);
        container.addView(imageView);
        return imageView;
    }

    @Override
    public void destroyItem(ViewGroup container, int position, Object object) {
        container.removeView((View) object);
    }
}

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <android.support.v4.view.ViewPager
        android:id="@+id/vp"
        android:layout_width="match_parent"
        android:layout_height="200dp" />

    <RadioGroup
        android:id="@+id/rg"
        android:gravity="center"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <RadioButton
            android:id="@+id/rb1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
             />

        <RadioButton
            android:id="@+id/rb2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
             />

        <RadioButton
            android:id="@+id/rb3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
             />

        <RadioButton
            android:id="@+id/rb4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
             />
    </RadioGroup>

</LinearLayout>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章