App引导页面代码示例
来源:互联网 发布:天天回程车软件 编辑:程序博客网 时间:2024/06/05 14:44
public class GuideUI extends Activity implements OnClickListener{public static final StringTAG= "GuideUI";private int[]IMAGES= new int[] {R.drawable.guide_1,R.drawable.guide_2,R.drawable.guide_3};private ViewPagermViewPager;private LinearLayoutmPonintContainer;// 装静态点的容器private ImageViewmIvPointFocus;// 动态的点private ButtonmBtnStart;private List<ImageView>mImageDatas;// ViewPager对应的数据private intmPointSpace;// 两个点的距离@Overrideprotected void onCreate(Bundle savedInstanceState){// 去掉标题requestWindowFeature(Window.FEATURE_NO_TITLE);super.onCreate(savedInstanceState);setContentView(R.layout.ui_guide);// 加载xml布局--->异步加载// 初始化viewinitView();// 初始化数据initData();}private void initView(){mViewPager = (ViewPager) findViewById(R.id.guide_viewpager);mPonintContainer = (LinearLayout) findViewById(R.id.guide_point_container);mIvPointFocus = (ImageView) findViewById(R.id.guide_iv_pointfocus);mBtnStart = (Button) findViewById(R.id.guide_btn_start);mIvPointFocus.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() {@Overridepublic void onGlobalLayout(){// 布局发生改变时的回调mPointSpace = mPonintContainer.getChildAt(1).getLeft() - mPonintContainer.getChildAt(0).getLeft();mIvPointFocus.getViewTreeObserver().removeGlobalOnLayoutListener(this);}});// 设置button点击事件mBtnStart.setOnClickListener(this);}private void initData(){// 初始化数据mImageDatas = new ArrayList<ImageView>();for (int i = 0; i < IMAGES.length; i++){ImageView iv = new ImageView(this);// 设置显示iv.setImageResource(IMAGES[i]);iv.setScaleType(ScaleType.FIT_XY);mImageDatas.add(iv);ImageView point = new ImageView(this);point.setImageResource(R.drawable.point_normal);LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);if (i != 0){params.leftMargin = 10;}// 动态加载点mPonintContainer.addView(point, params);}// 设置adaptermViewPager.setAdapter(new GuideAdapter());// apdater ---> List// 给viewpager设置监听mViewPager.setOnPageChangeListener(new GuidePagerListener());}private class GuideAdapter extends PagerAdapter{@Overridepublic int getCount(){if (mImageDatas != null) { return mImageDatas.size(); }return 0;}@Overridepublic boolean isViewFromObject(View view, Object object){return view == object;}@Overridepublic Object instantiateItem(ViewGroup container, int position){// 初始化viewImageView iv = mImageDatas.get(position);// 添加到containercontainer.addView(iv);return iv;}@Overridepublic void destroyItem(ViewGroup container, int position, Object object){container.removeView((View) object);}}private class GuidePagerListener implements OnPageChangeListener{@Overridepublic void onPageScrolled(int position, float positionOffset, int positionOffsetPixels){// 1.position: 在那个页面滑动// 2.positionOffset: 滑动的像素值/页面的宽度 滑动的百分比// 3.positionOffsetPixels: 滑动的像素值// 当页面滚动时的回调// Log.d(TAG, "onPageScrolled : " + position + " " + positionOffset// + " " + positionOffsetPixels);// 两个点间的距离--->// 两个点间的距离 * 滑动的比值positionOffsetint marginLeft = (int) (mPointSpace * positionOffset + position * mPointSpace + 0.5f);// 动态去设置 点的marginLeftRelativeLayout.LayoutParams params = (android.widget.RelativeLayout.LayoutParams) mIvPointFocus.getLayoutParams();params.leftMargin = marginLeft;mIvPointFocus.setLayoutParams(params);}@Overridepublic void onPageSelected(int position){// 当页面选中时的回调// Log.d(TAG, "onPageSelected:" + position);// if (position == mImageDatas.size() - 1)// {// mBtnStart.setVisibility(View.VISIBLE);// }// else// {// mBtnStart.setVisibility(View.GONE);// }mBtnStart.setVisibility((position == mImageDatas.size() - 1) ? View.VISIBLE : View.GONE);}@Overridepublic void onPageScrollStateChanged(int state){// 页面滑动状态改变时的回调// * @param state The new scroll state.// * @see ViewPager#SCROLL_STATE_IDLE : 闲置// * @see ViewPager#SCROLL_STATE_DRAGGING : 拖拽状态// * @see ViewPager#SCROLL_STATE_SETTLING: 固定选中状态// 由一种状态变为另外一种状态Log.d(TAG, "onPageScrollStateChanged:" + state);}}@Overridepublic void onClick(View v){if (v == mBtnStart){// 记录已经打开过PreferenceUtils.setBoolean(this, WelcomeUI.KEY_FIRST_LOAD, false);// 页面跳转Intent intent = new Intent(this, HomeUI.class);startActivity(intent);finish();}}}
0 0
- App引导页面代码示例
- 为app添加引导页面
- APP第一次走引导页面的方法
- app的引导页面的使用
- APP开启页面代码
- android 切换页面 代码示例
- Android AnimationDrawable动画与APP启动引导页面
- app引导页(背景图片切换加各个页面动画效果)
- 使用ViewFlipper+GestureDetector实现轮播图(APP引导页面)
- app引导页(背景图片切换加各个页面动画效果)
- app引导页(背景图片切换加各个页面动画效果)
- app引导页(背景图片切换加各个页面动画效果)
- app引导页(背景图片切换加各个页面动画效果)
- App引导页:背景图片切换加各个页面动画效果
- app引导页(背景图片切换加各个页面动画效果)
- Android 第一次进入App的时候进入引导页面
- APP中透明新手引导页面的实现
- 用Viewpager+Fragment+RadioGroup实现APP的引导页面
- 第一章 JAVA入门(Eclipse续集)
- LeetCode Binary Tree Postorder Traversal
- 《UNIX环境高级编程》(exec)
- ldpack工作日记-2016/5/11&12
- Android开发:自定义Spinner适配器
- App引导页面代码示例
- strcpy函数实
- 全局捕获异常
- 微软面试100题-66
- poj 2586 Y2K Accounting Bug
- 使用HTML + CSS实现圆圈背景下的数字
- 大二实习投简历小记
- AOJ-737 关于最大公约数的疑惑
- Js apply方法详解