Android引导指示层的制作 (ViewStub + SharePreference)
引导指示界面是个什么鬼东西?一张图即明了:
aaarticlea/png;base64,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" alt="" />
其实就是给刚安装你的软件的用户指示如何使用的一个蒙层,具有以下特点:
- 运行中显示,用户使用到特定的环境、特定的界面时才显示(这里请区别下第一次安装时刚启动时好几个滑动界面的“引导欢迎页”)
- 覆盖于原来界面之上,并且半透明,带有指示文字或图标
- 软件生命周期内只出现一次(阅后即焚)
- 不影响原来软件的操作
这一个小小的界面实现起来有一些小的诀窍,使用了ViewStub和SharePrefrence,下面一步步展示如何实现。
写布局
第一步就是写出这个展示出来效果的布局文件,这里例子很简单,就是一个全屏的.9半透明黑色图加上一个白色文字图片,图片居中。这一步直接给出代码。
根据你的情况自己实现自己所需要的布局。
layout\guide_root_slide_left_right.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:focusable="true"
android:clickable="true"
android:id="@+id/guide_root"
android:background="@drawable/bg_dark"
>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/img_slide"
android:layout_centerInParent="true"
/> </RelativeLayout>
使用ViewStub
为什么使用ViewStub?首先看下我们的需求,第一是这个页面是动态根据条件呈现的,第二是它并不重要出现过一次后就不再需了,因为希望它不要占多少内存。以此来看,ViewStub就是实现这个引导指示层的最佳控件。
对于在运行时决定可见性的界面我们通常的做法是:
- 在布局文件中写好改view或者viewgroup,设置visibility为gone
- 在代码中根据运行条件将上述view或者viewgroup的可见性设为visible
这样子没什么不可,但是带来的问题是以后每次进这个界面,系统都会为这个view分配内存并且实例化,从而拖慢了速度,耗费资源(事实上我们只想让它显示仅仅一次就不要了)。而ViewStub呢?它是一个轻量级的View,类似于一个占位符。给他指定一个布局,它默认并不会inflate出来,直到你想让它显示出来的时候才会inflate你所指定的布局从而延迟分配了内存(类似于延迟加载)。
由于我们的半透明指示层是要蒙住全屏的,而且才原来的布局界面之上(布局树里面的控件是写在上面位置的先展示,写在下面位置的后展示),所以我们的原来的根布局需要为RelativeLayout,同时在根布局的最下面写上ViewStub:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/root"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"> <!-- 原来的Activity内容-->
... <ViewStub
android:id="@+id/guide_root_slide"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_centerInParent="true" android:layout="@layout/guide_root_slide_left_right"/> </RelativeLayout>
这里ViewStub可以当作是一个普通的View来加入到布局文件里面,同时给他的layout参数执行我们实际想要inflate出来的布局。等于给占位符设置一个“目标”。
增加逻辑代码
在你的activity代码中,获得这个ViewStub的引用:
ViewStub stubGuideSlide; // onCreate
stubGuideSlide = (ViewStub) findViewById(R.id.guide_root_slide);
然后写一个方法,在你的运行判断逻辑(比如某个按钮的点击回调)里面执行这个方法,这里写上伪代码:
// some on Click listener
...
showGuideSlide();
... private void showGuideSlide(){ if(如果第一次到这里)
展示GuideSlide引导指示层
else
不展示 }
如何判断是否第一次走到这里呢?我们可以用SharePreference,我们可以随便定义属于这张引导指示层的key,然后判断他是否存在。如果不存在表示第一次进入,进入后我们把这个key对应的SharePeference随便设一个值,下回就不会走到这里了:(showGuideSlide的完整代码如下)
private void showGuideSlide() { if (SPUtils.contains(mContext, Constant.GuideVisibilityKey.ROOT_FRAGMENT_SLIDE)) {
return;
} try {
final View guideSlideView = stubGuideSlide.inflate();
RelativeLayout rl = (RelativeLayout) guideSlideView.findViewById(R.id.guide_root);
if (rl != null) {
rl.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
guideSlideView.setVisibility(View.GONE);
}
});
}
} catch (Exception e) {
e.printStackTrace();
} SPUtils.put(mContext, Constant.GuideVisibilityKey.ROOT_FRAGMENT_SLIDE, true);
}
上述代码需要解释几个地方:
- SPUtils是我自己写的一个SharePreference的帮助类,方便设值和检查是否含有某个key, Constant.GuideVisibilityKey.ROOT_FRAGMENT_SLIDE是这个key的名字
- stubGuideSlide.inflate()即通知ViewStub将指定的guide_root_slide_left_right.xml布局文件给inflate出来,从而展示出引导指示层
- 我们需要让用户点击这个指示层的任意位置后销毁指示层,所以我们先获取布局的根viewgroup即rl,然后给他设置点击事件,点击的时候把ViewStub给Gone掉,这个时候ViewStub就销毁了。这里不能直接给ViewStub设置点击事件,这样子是没有效果的,您可以尝试一下。
Android引导指示层的制作 (ViewStub + SharePreference)的更多相关文章
- Android 高亮指示层提示
此库出自翔神之手 用起来绝对方便 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0J ...
- Xamarin.Android 引导页
http://blog.csdn.net/qq1326702940/article/details/78665588 https://www.cnblogs.com/catcher1994/p/555 ...
- Android:res之shape制作圆角、虚线、渐变
xml控件配置属性 android:background="@drawable/shape" 标签 corners ----------圆角gradient ----------渐 ...
- iOS开发必备HUD(透明指示层)
iOS开发必备HUD(透明指示层) 字数421 阅读2123 评论1 喜欢51 1.MBProgressHUD GitHub地址:https://github.com/jdg/MBProgressHU ...
- [转载]在Android C/C++层添加LOG调试
原文地址:C/C++层添加LOG调试">在Android C/C++层添加LOG调试作者:谢轩昂 在Android C/C++层添加LOG调试,并且在Logcat中输出的方法 第一步: ...
- android recovery模式及ROM制作
转自android recovery模式及ROM制作 1.总述 为了方便客户日后的固件升级,本周研究了一下android的recovery模式.网上有不少这类的资料,但都比较繁杂,没有一个系统的介绍与 ...
- cocos2d-x 通过JNI实现c/c++和Android的java层函数互调
文章摘要: 本文主要实现两个功能: (1)通过Android sdk的API得到应用程序的包名(PackageName),然后传递给c++层函数. (2)通过c++函数调用Android的java层函 ...
- Android在layout xml中使用ViewStub完成动态加载
Android在layout xml中使用ViewStub完成动态加载 一.Layout XML文件常见的两种模块加载方式 1.静态加载:被加载的模块和其它模块加载的时间一样. <include ...
- 多种效果进度指示层效果iOS源码项目
该源码是一个多种效果进度指示层效果源码案例,源码KVNProgress,KVNProgress提供多种效果的进度指示层,有半透明效果,也支持全屏显示.指示层还高度支持自定义,可以按自己的需求定制.效果 ...
随机推荐
- Access restriction: The type 'RSACipher' is not API
解决方法: http://stackoverflow.com/questions/860187/access-restriction-on-class-due-to-restriction-on-re ...
- Nginx状态码499
1.问题描述 140.207.202.187 - - [18/May/2016:10:30:58 +0800] "POST/v3/violations HTTP/1.1" 499 ...
- myBatis系列之四:关联数据的查询
myBatis系列之三:增删改查是基于单表的查询,如果联表查询,返回的是复合对象,需要用association关键字来处理. 如User发表Article,每个用户可以发表多个Article,他们之间 ...
- linux-redhat6.4驱动无线网卡rtl8188eu
无线网卡Realtek Semiconductor Cop. RTL8188EUS 首先下载安装包: 其中的0BDA是Realtek的代码,8179是设备代码.从网上查到这个设备的芯片是rtl81 ...
- 这回真的是挤时间了-PHP基础(三)
hi 刚看了唐人街探案,5星好评啊亲.由于是早就约好的,也不好推辞(虽然是和男的..),但该写的还是得挤时间写.明天早上老师的项目结题,虽然和我关系不大,但不要添乱就好!! 1.PHP 一.PHP基 ...
- notepad++编译并运行java (自定义包)
最近用Notepad++写汇编,感觉用起来挺顺手,于是想能不能也在这个优秀的编辑器下编写java并编译运行呢,因为每次启动eclipse都要挺长时间,而且eclipse实在太占内存了... 于是各种百 ...
- 模版(template)
模版(template) 在c++Template中很多地方都用到了typename与class这两个关键字,而且好像可以替换,是不是这两个关键字完全一样呢? 相信学习C++的人对class这个关键字 ...
- jdk8-日期
今天遇到了日期问题,看了下jdk8新特性 http://www.ibm.com/developerworks/cn/java/j-lo-jdk8newfeature/index.html Java 的 ...
- MyBatis配置文件解析
MyBatis配置文件解析(概要) 1.configuration:根元素 1.1 properties:定义配置外在化 1.2 settings:一些全局性的配置 1.3 typeAliases:为 ...
- createDocumentFragment() 创建文档碎片节点
var aqiData = [ ["北京", 90], ["上海", 50], ["福州", 10], ["广州", 5 ...