ViewPager无限轮播

来源:互联网 发布:360度全景图制作 js 编辑:程序博客网 时间:2024/05/17 03:01
package com.example.viewpagerdian;import android.content.Intent;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.Button;import android.widget.ImageView;public class MainActivity extends AppCompatActivity {    private ViewPager vp;    //存入图片(展示三张图片无限循环(下标为1,2,3(0,4为重复)))    private int[] icon = {R.mipmap.s,R.mipmap.j,R.mipmap.k,R.mipmap.s,R.mipmap.j};    //初始化一个变量    int i;    private Button btn;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);//获取控件的方法        initview();//设置适配器(可写适配器类)        vp.setAdapter(new PagerAdapter() {            @Override            public int getCount() {                return 5;            }            @Override            public boolean isViewFromObject(View view, Object object) {                return view == object;            }            @Override            public Object instantiateItem(ViewGroup container, int position) {        //加载布局                View view = View.inflate(MainActivity.this, R.layout.icon, null);                //获取控件                ImageView iv = view.findViewById(R.id.iv_icon);        //设置图片                iv.setImageResource(icon[position]);                //添加到视图                container.addView(view);                return view;            }            @Override            public void destroyItem(ViewGroup container, int position, Object object) {                container.removeView((View) object);            }        });    //初始化展示图片(开始展示的图片)        vp.setCurrentItem(1);        //无限轮滑        vp.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {            @Override            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {                }            @Override            public void onPageSelected(int position) {                //查找当前展示图片下标                int c = vp.getCurrentItem();        //判断下标(跳转按钮的隐显)(布局文件按钮是 android:visibility="invisible")        // else必须写                if(c == 3){                    btn.setVisibility(View.VISIBLE);                }else{                     btn.setVisibility(View.INVISIBLE);                }                                //判断下标                if(c == 0){        //下标为0表示展示最后一张图片(因为实际就展示三张(头尾多加了一张))                    i = 3;                }else if(c == 4){                    i = 1;                }else{                    i = position;                }            }            @Override            public void onPageScrollStateChanged(int state) {//用户在以触屏方式滚动屏幕并且手指仍然还在屏幕上时   SCROLL_STATE_TOUCH_SCROLL//用户由于之前划动屏幕并抬起手指,屏幕产生惯性滑动时 SCROLL_STATE_FLING//判断当屏幕停止滚动时    SCROLL_STATE_IDLE                if(state == vp.SCROLL_STATE_IDLE){                    vp.setCurrentItem(i,false);                }            }        });    }//加载控件的方法    private void initview() {        vp = (ViewPager) findViewById(R.id.viewpager);        btn = (Button) findViewById(R.id.btn);    }        //按钮点击跳转    public void click(View view){        startActivity(new Intent(MainActivity.this,HomeActivity.class));    }}


原创粉丝点击