总结一下android app引导页
来源:互联网 发布:自学电脑办公软件 编辑:程序博客网 时间:2024/06/13 21:52
主页面是一个viewPager加是否同意公司协议的checkBox,立即体验的imageView,一个装载dots的linearLayout,checkBox,imageView,linearLayout一开始设置为gone
布局文件activity_guide.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/white"> <android.support.v4.view.ViewPager android:id="@+id/guide_viewpager" android:layout_width="match_parent" android:layout_height="match_parent" /> <CheckBox android:id="@+id/cbs" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true" android:layout_marginBottom="@dimen/dp_100" android:button="@drawable/checkbox_selector" android:paddingLeft="@dimen/GuideCheckBox" android:text="@string/Agree_with_privacy_agreement" android:textColor="#da837f" android:textSize="@dimen/sp12" android:visibility="gone" /> <ImageView android:id="@+id/guide_btn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true" android:layout_marginBottom="@dimen/dp_50" android:src="@mipmap/guide_btn" android:visibility="visible" /> <LinearLayout android:id="@+id/guide_dots" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_marginBottom="@dimen/dp_20" android:gravity="center_horizontal" android:orientation="horizontal" android:visibility="gone" /></RelativeLayout>
引导页activity中oncreate中实现 initPager()方法;
int[] images; //初始化ViewPager private void initPager(){ viewList = new ArrayList<View>(); images = new int[] { R.mipmap.guide1,R.mipmap.guide2,R.mipmap.guide3}; for (int i = 0; i < images.length; i++) { viewList.add(initView(images[i])); } initDots(images.length); }
里面有一个initView将图片的地址转化为View方法,参数为image的地址,
private View initView(int res){ View view = LayoutInflater.from(getApplicationContext()).inflate(R.layout.item_guide, null); ImageView imageView = (ImageView)view.findViewById(R.id.iguide_img); imageView.setImageBitmap(readBitMap(res)); return view; }
其中item_guide就是一个imageView布局,readBitMap(res)是一个Bitmap值
public Bitmap readBitMap(int resId){ BitmapFactory.Options opt = new BitmapFactory.Options(); opt.inPreferredConfig = Bitmap.Config.RGB_565; opt.inPurgeable = true; opt.inInputShareable = true; //获取资源图片 InputStream is = this.getResources().openRawResource(resId); return BitmapFactory.decodeStream(is,null,opt); }
除了对viewPager进行初始化之外,对linearLayout这个线性布局中装载指示器也要进化初始化initDots();
//根据页面数初始化指示器 private void initDots(int count){ for (int j = 0; j < count; j++) { guideDots.addView(initDot());//guideDots就是linearlayout,添加view,一个imageButton } guideDots.getChildAt(0).setSelected(true); } private View initDot(){ return LayoutInflater.from(getApplicationContext()).inflate(R.layout.layout_dot, null); }
之后进行的是viewPager的适配数据:适配器
guideViewpager.setAdapter(new GuideAdapter(GuideActivity.this,viewList));
public class GuideAdapter extends PagerAdapter {
private List<View> data;private Context mContext;public GuideAdapter(Context mContext, List<View> data){ super(); this.data = data; this.mContext=mContext;}@Overridepublic int getCount() { return data.size();}@Overridepublic boolean isViewFromObject(View arg0, Object arg1) { return arg0 == arg1;}@Overridepublic Object instantiateItem(ViewGroup container, int position) { container.addView(data.get(position)); return data.get(position);}@Overridepublic void destroyItem(ViewGroup container, int position, Object object) { container.removeView(data.get(position));}
}
对viewPager中图片是否是最后一个从而来判断是否显示checkBox跟imageview:
guideViewpager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { for (int i = 0 ;i < guideDots.getChildCount() ; i++ ){ if (i == position){ guideDots.getChildAt(position).setSelected(true); guideBtn.setVisibility(View.VISIBLE); cbs.setVisibility(View.VISIBLE); }else { guideDots.getChildAt(i).setSelected(false); guideBtn.setVisibility(View.GONE); cbs.setVisibility(View.GONE); } } } @Override public void onPageSelected(int position) { } @Override public void onPageScrollStateChanged(int state) { } }); }
从而引导页就完成了
0 0
- 总结一下android app引导页
- Android App引导页
- Android APP引导页制作
- 谈谈并实践Android App引导页
- Android APP引导
- app引导页
- app引导页
- app引导页
- APP引导页Demo
- app引导页
- APP引导页动画
- android app引导界面实现
- android App中的引导界面
- Android程序:使用ViewPager实现app引导页效果
- Android开发之app入口引导页Viewpager
- Android APP 引导页实现-第一次应用进入时加载
- Android ViewPager demo APP首次启动引导页
- Android进入APP判断引导页是否显示.
- Codeforces 258B - Little Elephant and Elections
- windows下面如何将桌面上显示的数据从内存取出来
- VS2010-配置OpenGL
- iwebshop中的增删改查
- window图像设备接口及绘图
- 总结一下android app引导页
- SO_KEEPALIVE选项解释
- 远程计算机或设备将不接受连接,IE无法上网
- 两个曲柄滑块机构组成简单机械系统
- iOS和Android的区别
- 第五周—求最大值
- 第五周 raptor 圆半径求周长
- redis 缓存使用 java
- php基础语法2:switch状态分支,三种循环结构和终止循环测试