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