引导页ViewPager当滑动到最后一页,再继续滑动切换页面的效果实现
2016-12-02 17:55
597 查看
本文还包括是不是第一次启动的判断
引导页ViewPager当滑动到最后一页,再继续滑动切换页面的效果实现,还有在滑动到最后一页显示一个button,点击button也可以实现跳转
上代码
布局
引导页ViewPager当滑动到最后一页,再继续滑动切换页面的效果实现,还有在滑动到最后一页显示一个button,点击button也可以实现跳转
上代码
/** * * 引导页界面(viewpager) * */ public class IntroActivity extends Activity implements View.OnClickListener{ //TODO 图片资源(测试用小绿机器人,正式后要替换) int[] image={R.mipmap.ic_launcher,R.mipmap.ic_launcher,R.mipmap.ic_launcher}; List<View> images=new ArrayList<>(); private ViewPager vp; private Button bt; private int currentPage; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // 根据版本号判断是不是第一次使用 PackageInfo info=null; try { info=getPackageManager().getPackageInfo(getPackageName(),0); } catch (PackageManager.NameNotFoundException e) { e.printStackTrace(); } final int currentVersion = info.versionCode; SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this); Float lastVersion = sp.getFloat("VERSION_KEY", 0); if (currentVersion>lastVersion){ // 第一次启动将当前版本进行存储 sp.edit().putFloat("VERSION_KEY",currentVersion).commit(); setContentView(R.layout.activity_intro); //将图片添加到list<view>集合中 for (int i = 0; i < image.length; i++) { ImageView iv=new ImageView(this); iv.setImageResource(image[i]); iv.setScaleType(ImageView.ScaleType.FIT_XY); images.add(iv); } vp = (ViewPager) findViewById(R.id.vp); bt = (Button) findViewById(R.id.gointo_app_bt); GuildPagerAdapter adapter=new GuildPagerAdapter(images); vp.setAdapter(adapter); vp.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { //currentpage后面要用 currentPage=position; if(position==2){ //设置可见,如果用按钮也可以实现activity的跳转,两种跳转功能都具备 bt.setVisibility(View.VISIBLE); bt.setOnClickListener(IntroActivity.this); }else { bt.setVisibility(View.GONE); } } @Override public void onPageScrollStateChanged(int state) { } }); //设置ViewPager的滑动监听,为了滑动到最后一页,继续滑动实现页面的跳转 vp.setOnTouchListener(new View.OnTouchListener() { float startX; float endX; @Override public boolean onTouch(View v, MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: startX = event.getX(); break; case MotionEvent.ACTION_UP: endX = event.getX(); //获取屏幕的宽度 int width = ScreenUtils.getScreenWidth(getApplicationContext()); //根据滑动的距离来切换界面 if (currentPage == 2 && startX - endX >= (width / 5)) { startApp();//切换界面 } break; } return false; } }); }else { // 非第一次启动直接跳转 startApp(); } } private void startApp() { Intent intent=new Intent(this,SplashActivity.class); startActivity(intent); finish(); } //button 点击事件 public void onClick(View view) { startApp(); } /** *@author Administrator *@date 2016/12/2 0002 上午 9:26 *@Description viewpager 的适配器,内容不多直接写内部类了 *@param *@retrun */ public class GuildPagerAdapter extends PagerAdapter{ List<View> list; public GuildPagerAdapter(List<View> list) { this.list = list; } @Override public int getCount() { return list.size(); } @Override public Object instantiateItem(ViewGroup container, int position) { container.addView(list.get(position)); return list.get(position); } @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView(list.get(position)); } @Override public boolean isViewFromObject(View view, Object object) { return view==object; } } }
布局
<android.support.v4.view.ViewPager android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/vp"></android.support.v4.view.ViewPager> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/gointo_app_bt" android:background="@drawable/gointo_app_bg" android:text="点击进入App" android:textSize="28sp" android:onClick="onClick" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true" android:visibility="gone"/>
相关文章推荐
- Android应用中利用ViewPager实现多页面滑动切换效果示例
- Android 利用ViewPager实现底部圆点导航左右滑动效果以及Fragment页面切换
- Android中使用ViewPager实现屏幕页面切换和引导页效果实现
- Android编程实现ViewPager多页面滑动切换及动画效果的方法
- android ViewPager 解决自动滑动到最后一页,继续滑动的效果问题
- Android使用TabLayou+fragment+viewpager实现滑动切换页面效果
- ViewPager实现多页面滑动切换和动画效果
- Android实现APP引导页四种简单视图滑动切换效果ViewPager
- Android中用ViewPager实现多页面滑动切换及动画效果的实例
- ViewPager多页面滑动切换以及动画效果(转)
- ViewPager多页面滑动切换以及动画效果 (转载)
- [Android实例] ViewPager多页面滑动切换以及动画效果
- ViewPager多页面滑动切换以及动画效果(转)
- Android ViewPager多页面滑动切换以及动画效果
- ViewPager多页面滑动切换以及动画效果
- Android ViewPager 实现多个页面切换滑动
- Android ViewPager 实现多个页面切换滑动
- ViewPager多页面滑动切换以及动画效果
- ViewPager多页面滑动切换以及动画效果
- Android ViewPager多页面滑动切换以及动画效果