笔记-引导页GuideActivity
2015-12-21 23:17
525 查看
1. 用到ViewPager
activity----GuideActivity
manifest----注册activity
xml ----activity_guide.xml
2. 图片
3. xml中添加 1>ViewPager,Android Private Libraries-->找到V4-->view-->ViewPager-->右键复制限定名
2>Button给设定背景改变,用到选择器;设定字体改变,用到选择器
在res下新建drawable,其中新建btn_guide_selector.xml跟btn_guide_text_selector.xml
<item 中android:state_pressed="true" android:drawable="@drawable/***"/>
<item android:drawable="@drawable/***"/> 文字雷同
3>小灰点跟小红点,RelativeLayout好控制
小灰点个数要动态加载放置在一水平的LinearLayout中
小红点用一View节点
此两点的实现需要用到shape,灰点为例。在drawable下新建shape_point_grey.xml
<shape xmlns:android="***" android:shape="oval" >
<solid android:color="@android:color/darker_gray" />
</shape>
GuideActivity中
requestWindowsFeature(Windows.FETURE_NO_TITLE);
通过ID找到ViewPager;
初始化View;
给ViewPager设置Adapter;
initView()中
图片资源ID放到int[]
遍历每一ID时,先new出ImageView,再将此id设给ImageView做背景资源setBackgroundResource
将每次new出的ImageView添加至一ArrayList中
创建class GuideAdapter
重写instantiateItem (addView);destroyItem (removeView)
再initView()中动态设置小灰点至一水平的LinearLayout中
遍历图片资源ID时,先new出View,再给其设定自定义的背景资源
要大小跟间距,new出其父布局的布局参数(大小),在第二个参数时,给布局参数.leftMargin 设大小
把布局参数设给此View。将其添加至水平的线性布局中
小红点位置随手指移动,给ViewPager设置监听器setOnPageChangeListener()
创建class GuidePageListener implements OnPageChangeListener
在其方法中有监听滑动事件,可获得滑过距离所占的百分比,用两小灰点左边的距离之差乘以此百分比即可。
initView()中,获取两小灰点左边的距离之差用 mPointWidth = llPointGroup.getChildAt(1).getLeft()
- llPointGroup.getChildAt(0).getLeft();
但得在当layout执行结束后才能测得距离,要获取视图树, 对layout结束事件进行监听
llPointGroup.getViewTreeObserver().addOnGlobalLayoutListener(
new OnGlobalLayoutListener() {***remove掉此监听;测量}
在监听的滑动事件方法中 计算出小红点要移动的距离 (给加上本来位置应有的距离)
RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) viewRedPoint
.getLayoutParams();// 获取当前红点的布局参数
设置左边距,重新给小红点设置布局参数
按钮只出现在最后一页 找到Button 在ViewPager的监听选择页中,判断是否为最后一页,
是给Button设visibility为View.visiable,否则设为invisiable。
按钮跳转页,设置监听,后finished();
GuideActivity显示一次后,第二次不显示
用SharePreference.要多次判断,对其封装成Utiles,getBoolean,setBoolean
SplashActivity显示完后要判断,跳哪个页面,jumpNextPage(),第一次给默认,后判断
点开始体验后更新sp, 表示已经展示了新手引导
activity----GuideActivity
manifest----注册activity
xml ----activity_guide.xml
2. 图片
3. xml中添加 1>ViewPager,Android Private Libraries-->找到V4-->view-->ViewPager-->右键复制限定名
2>Button给设定背景改变,用到选择器;设定字体改变,用到选择器
在res下新建drawable,其中新建btn_guide_selector.xml跟btn_guide_text_selector.xml
<item 中android:state_pressed="true" android:drawable="@drawable/***"/>
<item android:drawable="@drawable/***"/> 文字雷同
3>小灰点跟小红点,RelativeLayout好控制
小灰点个数要动态加载放置在一水平的LinearLayout中
小红点用一View节点
此两点的实现需要用到shape,灰点为例。在drawable下新建shape_point_grey.xml
<shape xmlns:android="***" android:shape="oval" >
<solid android:color="@android:color/darker_gray" />
</shape>
GuideActivity中
requestWindowsFeature(Windows.FETURE_NO_TITLE);
通过ID找到ViewPager;
初始化View;
给ViewPager设置Adapter;
initView()中
图片资源ID放到int[]
遍历每一ID时,先new出ImageView,再将此id设给ImageView做背景资源setBackgroundResource
将每次new出的ImageView添加至一ArrayList中
创建class GuideAdapter
重写instantiateItem (addView);destroyItem (removeView)
再initView()中动态设置小灰点至一水平的LinearLayout中
遍历图片资源ID时,先new出View,再给其设定自定义的背景资源
要大小跟间距,new出其父布局的布局参数(大小),在第二个参数时,给布局参数.leftMargin 设大小
把布局参数设给此View。将其添加至水平的线性布局中
小红点位置随手指移动,给ViewPager设置监听器setOnPageChangeListener()
创建class GuidePageListener implements OnPageChangeListener
在其方法中有监听滑动事件,可获得滑过距离所占的百分比,用两小灰点左边的距离之差乘以此百分比即可。
initView()中,获取两小灰点左边的距离之差用 mPointWidth = llPointGroup.getChildAt(1).getLeft()
- llPointGroup.getChildAt(0).getLeft();
但得在当layout执行结束后才能测得距离,要获取视图树, 对layout结束事件进行监听
llPointGroup.getViewTreeObserver().addOnGlobalLayoutListener(
new OnGlobalLayoutListener() {***remove掉此监听;测量}
在监听的滑动事件方法中 计算出小红点要移动的距离 (给加上本来位置应有的距离)
RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) viewRedPoint
.getLayoutParams();// 获取当前红点的布局参数
设置左边距,重新给小红点设置布局参数
按钮只出现在最后一页 找到Button 在ViewPager的监听选择页中,判断是否为最后一页,
是给Button设visibility为View.visiable,否则设为invisiable。
按钮跳转页,设置监听,后finished();
GuideActivity显示一次后,第二次不显示
用SharePreference.要多次判断,对其封装成Utiles,getBoolean,setBoolean
SplashActivity显示完后要判断,跳哪个页面,jumpNextPage(),第一次给默认,后判断
点开始体验后更新sp, 表示已经展示了新手引导
相关文章推荐
- 子线程改变UI线程的方法
- UIScreen的scale属性
- LabVIEW如何将脚本插入Quick Drop
- dispatch_get_current_queue的废弃
- [uva] 10099 - The Tourist Guide
- NGUI 这一年填过的那些坑(不定时更新)
- Codeforces 597C Subsequences dp + 树状数组
- UILable的text设置中划线(删除线)
- Arduino - 多线程库SCoop应用 之 任务
- UIView基础篇
- UITableView tableFooterView autolayout自动计算高度
- Replication-Replication Distribution Subsystem: agent xxxxxx failed. Column names in each table must be unique
- UIDynamic简单总结
- createQuery is not valid without active transaction
- C# 线程向UI通信 委托(delegate)
- 【Codeforces 597C】 Subsequences - DP 主席树
- UIImageView 实现一组动画
- mapreduce 自定义key/value 输出分隔符
- 【iOS】UITextField限制输入长度
- UI day 22 block动画 CAlayer动画