您的位置:首页 > 产品设计 > UI/UE

笔记-引导页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, 表示已经展示了新手引导
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: