欢迎引导页面的滑动进入
来源:互联网 发布:淘宝订单险有什么好处 编辑:程序博客网 时间:2024/06/08 00:23
在用户首次进入或升级时在欢迎页面一般情况下都会加入一个引导的页面,当滑动到最后一个页面时点击或向右滑动时就能进入主页面,实现代码如下:
public class WelcomeActivity extends Activity {private final int[] imageIDs = new int[]{R.mipmap.guide_image_01, R.mipmap.guide_image_02, R.mipmap.guide_image_03}; private volatile boolean isLastPage;//viewPager是否跑到最后一页 @ViewInject(R.id.viewPager)//其实就是findViewByID private ViewPager viewPager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_welcome); startGuidePage(); } @Override protected void onDestroy() { super.onDestroy(); } /** * 开启引导页 */ private void startGuidePage() { List<ImageView> views = new ArrayList<>(); ImageView imageView; for (int i = 0; i < imageIDs.length; i++) { imageView = new ImageView(this); imageView.setScaleType(ImageView.ScaleType.FIT_XY); ViewGroup.LayoutParams params = new ViewGroup.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT); imageView.setImageResource(imageIDs[i]); imageView.setLayoutParams(params); if (i == imageIDs.length - 1) { //点击进入 imageView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { goMainActivity(); } }); } views.add(imageView); } viewPager.setVisibility(View.VISIBLE); viewPager.setAdapter(new GuideAdapter(views)); final EdgeEffectCompat edgeEffectCompat = getEdgeEffectCompat(viewPager); viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { AtomicBoolean isGoMainActivity = new AtomicBoolean(false); @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { isLastPage = position == imageIDs.length - 1; } @Override public void onPageScrollStateChanged(int state) { boolean isIdleState = (state == ViewPager.SCROLL_STATE_IDLE);//viewPager是否处于闲置状态 if (isLastPage && isIdleState &&//处于最后页 并处于闲置状态(也可认为是手指离开了屏幕) edgeEffectCompat != null && !edgeEffectCompat.isFinished()//表示viewPager右边缘色已经展示 && isGoMainActivity.compareAndSet(false, true))//避免重复进入 //进入主界面 goMainActivity(); } }); } /** * viewPager右边缘色 对象 */ private EdgeEffectCompat getEdgeEffectCompat(ViewPager viewPager) { EdgeEffectCompat edgeEffectCompat = null; try { Field mRightEdge = viewPager.getClass().getDeclaredField("mRightEdge"); mRightEdge.setAccessible(true); edgeEffectCompat = (EdgeEffectCompat) mRightEdge.get(viewPager); } catch (Exception e) { e.printStackTrace(); } return edgeEffectCompat; } /** * 进入主界面 */ private void goMainActivity() { startActivity(new Intent(this, MainActivity.class)); finish(); }}
因项目的原因,引导页图我就不上传了,另外我将GuideAdapter也复制下,代码一般情况我都不太爱注释的public class GuideAdapter extends PagerAdapter { private List<ImageView> views; public GuideAdapter(List<ImageView> views){ this.views=views; } @Override public int getCount() { return views.size(); } @Override public boolean isViewFromObject(View view, Object object) { return view==object; } @Override public Object instantiateItem(ViewGroup container, int position) { container.addView(views.get(position)); return views.get(position); } @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView(views.get(position)); }}
0 0
- 欢迎引导页面的滑动进入
- Android应用第一次进入显示的欢迎,引导页面实例
- Android 第一次进入App的时候进入引导页面
- 引导页开发,欢迎页面的设计
- Android UI开发第二十篇——仿launcher的左右滑动(用ViewPager实现欢迎引导页面)
- Android UI开发第二十篇——仿launcher的左右滑动(用ViewPager实现欢迎引导页面)
- Android 引导页面 欢迎页面
- “第一次进入应用自动选择引导页面”的实现代码
- 安卓首次进入APP的时候的导航实现上下滑动引导特效-------从上往下滑动引导
- ViewPager实现欢迎引导页面
- ViewPage实现欢迎引导页面
- Android 欢迎页面 引导页
- Android应用程序实现欢迎引导页面的方法实现
- Android应用程序实现欢迎引导页面的方法实现
- Android应用程序实现欢迎引导页面的方法实现
- Android应用程序实现欢迎引导页面的方法实现
- Android应用程序实现欢迎引导页面的方法实现
- Android应用程序实现欢迎引导页面的方法实现
- 一点闲谈
- 安卓学习笔记---获取屏幕的宽高以及屏幕密度,最小宽度等同时可以可以获取屏幕的不同dimens进行适配
- hdu 1021
- HTML5中input标签新增的类型
- Android Camera HAL3中拍照Capture模式下多模块间的交互与帧Result与帧数据回调
- 欢迎引导页面的滑动进入
- 搞ACM的伤不起!
- Java异常处理方式
- Bulls and Cows
- Ubuntu 14.04 LTS 查看软件版本及安装位置
- mysql入门笔记3
- MeasureSpec学习 - 转
- Matlab:基本数据类型[转载]
- Python中sorted()方法的用法