Android:Welcome,一个容易使用和扩展的引导页控件

来源:互联网 发布:故宫淘宝与故宫旗舰店 编辑:程序博客网 时间:2024/06/07 14:33

恩,今天的小岛天气不太好,淅淅沥沥下起来了雨,不知道是不是因为前两天520,521发誓的人太多了……哈哈……
平常做的Android项目中经常会用到引导页面,虽然显示的次数并不多,但是却是用户对App的第一印象,能否做好App引导页面,很大程度上决定着这个App的逼格高低,从github上发现了一个很好用的开源项目,可惜没找到对应的翻译版,只好自己简单写一下。大家如果英语还可以的话,可以直接去看原文。welcome-android毕竟我的英语也不咋的……

Welcome

效果

恩,先看下效果。个人很喜欢这种风格哦。
welcome

使用方法

添加依赖

compile 'com.stephentuso:welcome:1.4.1'

如果你要使用proguard的话,你还得加上这些规则

-keepclassmembers class * extends com.stephentuso.welcome.WelcomeActivity {    public static java.lang.String welcomeKey();}

最基础的用法

  1. 首先要创建一个欢迎界面,继承WelcomeActivity,然后在AndroidManifest中进行注册,需要注意的是,必须使用WelcomeScreenTheme的子主题:
<activity android:name=".activity.MyWelcomeActivity"          android:theme = "@style/WelcomeScreenTheme"/>
  1. 重写Activity的configuration()方法。使用WelcomeConfiguration.Builder进行设置:
@Overrideprotected WelcomeConfiguration configuration() {    return new WelcomeConfiguration.Builder(this)            .defaultBackgroundColor(R.color.background)            .page(new TitlePage(R.drawable.logo,                    "Title")            )            .page(new BasicPage(R.drawable.image,                    "Header",                    "More text.")                    .background(R.color.red_background)            )            .page(new BasicPage(R.drawable.image,                    "Lorem ipsum",                    "dolor sit amet.")            )            .swipeToDismiss(true)            .build();}

不需要重写onCreate或调用setContentView方法。

3.欢迎屏幕通过WelcomeHelper来进行展示。onSaveInstanceState需要确保只有一个欢迎屏幕的实例启动。将以下内容添加到要显示欢迎屏幕的活动(可能是您的启动器活动)

WelcomeHelper welcomeScreen;@Overrideprotected void onCreate(Bundle savedInstanceState) {    ...    welcomeScreen = new WelcomeHelper(this, MyWelcomeActivity.class);    welcomeScreen.show(savedInstanceState);    ...}@Overrideprotected void onSaveInstanceState(Bundle outState) {    super.onSaveInstanceState(outState);    welcomeScreen.onSaveInstanceState(outState);}

如果您有导航栏覆盖的按钮/指示器的问题,请使用.SolidNavigation欢迎屏幕主题之一。
例如,要强制显示欢迎画面,要让用户在按下按钮时再次查看,请创建WelcomeHelper如上所示并调用.forceShow()。