我们只做新手引导,一般都是用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 view
MaterialShowcaseSequence 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。