我们只做新手引导,一般都是用viewpager或者在页面上覆盖一张半透明的布局来展示,有时需要UI切很多张图片。但有时安卓机器有时对不准指定的按钮。下面我来介绍一款很好用的第三方库MaterialShowcaseView。可以很好的解决上述问题,并且给UI省很多功夫。

如何使用?

1,由于该项目使用自定义仓库 jitpack 。因此需要配置 Project 目录下的build.gradle

repositories {maven {url "https://jitpack.io"}
}

2,随后在  build.gradle 添加

dependencies {compile com.github.deano2390:MaterialShowcaseView:1.1.0@aar'

} 点击 Sync Now,使 Gradle 生效即可。

3,在需要添加引导的地方调用下面的方法

private void presentShowcaseSequence() {ShowcaseConfig config = new ShowcaseConfig();config.setDelay(500); // half second between each showcase viewMaterialShowcaseSequence sequence = new MaterialShowcaseSequence(this, "aa");sequence.setConfig(config);sequence.addSequenceItem(layout_main_bottom_bar_tab4, "This is button one", "GOT IT");sequence.addSequenceItem(new MaterialShowcaseView.Builder(this).setTarget(mHomeFragment.mIbtnTitleRight).setDismissText("GOT IT").withRectangleShape(true).setContentText("This is button two").build());sequence.start();}

MaterialShowcaseView的一些重要方法:

设置我们要解释的文字

 private void setContentText(CharSequence contentText) {if (mContentTextView != null) {mContentTextView.setText(contentText);}}

设置点击消失的文字

 private void setDismissText(CharSequence dismissText) {if (mDismissButton != null) {mDismissButton.setText(dismissText);}}

设置2种字体的颜色

 private void setContentTextColor(int textColour) {if (mContentTextView != null) {mContentTextView.setTextColor(textColour);}}private void setDismissTextColor(int textColour) {if (mDismissButton != null) {mDismissButton.setTextColor(textColour);}}

设置延迟时间

private void setDelay(long delayInMillis) {mDelayInMillis = delayInMillis;}

初始化一个ID(唯一)

public Builder singleUse(String showcaseID) {showcaseView.singleUse(showcaseID);return this;}

初始化某个ID的试图

public static void resetSingleUse(Context context, String showcaseID) {PrefsManager.resetShowcase(context, showcaseID);}

设置引导的控件

setTarget()

设置高亮的地方形状

withRectangleShape(true)//矩形

最后说一下它的原理:

它是将每一个引导都做出来,添加到一个集合里,当我们点击下一步的时候是将当前的view移除。另外项目编译版本为23。

android 设置新手引导相关推荐

  1. android 调整字体,android设置:调整字体大小

    在手机的设置中,我可以全局更改应用的字体大小.android设置:调整字体大小 设置>显示>字体大小 我可以做的字体大小(小,中,大,非常大),也看过Java和(如果适用).只为我的应用程 ...

  2. Xamarin Android设置界面提示类型错误

    Xamarin Android设置界面提示类型错误 错误信息:Integer types not allow (at 'padding' with value '10') Android界面属性的长度 ...

  3. 【Android】Android 设置Activity窗体 不显示标题和全屏显示

    [一]Android 设置Activity窗体 不显示标题 android:theme="@android:style/Theme.NoTitleBar" 1 <activi ...

  4. Android设置Settings:预读取设置的选项和更新设置结果【2】

      Android设置Settings:预读取设置的选项和更新设置结果[2] 本文在文章1的基础上,增加预读取历史的修改.设置值更新到设置选项中,同时,每一次更新都会实时更新到设置栏中.  res ...

  5. Android 设置EditText光标位置(转)

    Android 设置EditText光标位置 最后 CharSequence text = edtTxt_my_account_edit_nickname.getText();if (text ins ...

  6. Android设置ProgressBar的前景和背景及其在多线程中的刷新

    我们知道Android为ProgressBar提供了几种不同的样式,不过若是只是这几种样式还不能满足我们对界面的需求.例如,我们ProgressBar的前景和背景.一般情况下我们希望这是一个按照我们自 ...

  7. android+系统屏幕亮度,android 设置系统屏幕亮度

    android 设置系统屏幕亮度 权限 /** * 获得当前屏幕亮度的模式 * SCREEN_BRIGHTNESS_MODE_AUTOMATIC=1 为自动调节屏幕亮度 * SCREEN_BRIGHT ...

  8. Android 设置TextView字体加粗

    今天,简单讲讲Android里如何设置TextView字体加粗. 不废话了,用过多次,还是没记住.直接上代码. 1.布局文件中这样设置即可: XML/HTML代码 android:textStyle= ...

  9. android 设置点击ProgressDialog外的区域不消失

    今天,简单讲讲android如何设置点击ProgressDialog外的区域不消失.  昨天,自己做一个加载框ProgressDialog时,完成功能后,发现ProgressDialog点击区域外 ...

最新文章

  1. 自定义 DataLoader
  2. 论文笔记 Bayesian Probabilistic Matrix Factorizationusing Markov Chain Monte Carlo (ICML 2008)
  3. AIRAVATA:量化机器学习中的参数泄露
  4. Qt Creator使用自定义字体
  5. python之路——迭代器和生成器
  6. “驱网核心技术丛书”创作团队访谈
  7. 从趋势到必选项,探讨企业数字化转型方式方法
  8. 张献涛:虚拟化技术 40 年演进史 | 凌云时刻
  9. Apache24(VC15)安装步骤
  10. 用Excel 随机抽取不重复n行数据
  11. 荧光仪电源维修Spellman电源维修FF60P4X3313
  12. R语言--Cox模型校准曲线原理(二)算法
  13. 阿里云云边一体容器架构创新论文被云计算顶会 ACM SoCC 录用
  14. 华为p9 android,华为p9 emui5.0怎么退回emui4.1 华为P9系统降级教程
  15. MySQL之MVCC原理
  16. 第一章 huggingface简介
  17. 使用ArchR分析单细胞ATAC-seq数据(第十四章)
  18. BIOS界面部分信息
  19. 只有准确了解你的孩子在网上观看的内容,才能对小家伙们的网络行为给出合理的建议!
  20. MS中Perl脚本实现原子随机掺杂(或生成空位)

热门文章

  1. Mathtype——输入空格的方法
  2. Photoshop软件的应用领域介绍
  3. 微信小程序入门到实战(二)
  4. SQL NULL Values(空值)
  5. JavaScript中的内存回收机制
  6. 基于JavaWeb的四季青敬老院系统的设计与实现
  7. 你不知道的前端代码规范
  8. 新闻快报| 虹科与瑞士Dimetix已联手合作三周年, 致力于提供高效、精确的激光测距解决方案!
  9. golang实现andflow流程引擎
  10. 基于php的库存管理系统开题报告,库存管理系统的开题报告.doc