大家好,我是森森.

很多人留言给我说,别老讲这么简单的,没用的,讲点实用的,其实我水平本来就不高,这次给大家分享一下,最近做的新手指引界面吧.

其实我什么都不会,那天我们出去玩,碰到朋友带孩子在玩,我说,来,给叔叔表演个节目,他腼腆的说,我什么都不会.朋友说,勇敢点,自信点.孩子大声说:老子不会.

废话不多说,先上图.

f17ceae71da1

01.png

f17ceae71da1

02.png

f17ceae71da1

03.png

f17ceae71da1

04.png

我做的是,新手指淫,一共有四个按钮,点击我知道了就自动导入下一个按钮.

在项目里边,Build.gradle的

dependencies {

compile 'com.isanwenyu.highlight:highlight:1.5.1'

}

代码如下:

public void showNextKnownTipView() {

mHightLight = new HighLight(MainActivity.this)//

.autoRemove(false)//设置背景点击高亮布局自动移除为false 默认为true

.intercept(false)//设置拦截属性为false 高亮布局不影响后面布局的滑动效果

.intercept(true)//拦截属性默认为true 使下方callback生效

.enableNext()//开启next模式并通过show方法显示 然后通过调用next()方法切换到下一个提示布局,直到移除自身

.setClickCallback(new HighLight.OnClickCallback() {

@Override

public void onClick() {

Toast.makeText(MainActivity.this, "clicked and remove HightLight view by yourself", Toast.LENGTH_SHORT).show();

//remove(null);

}

})

.anchor(findViewById(R.id.id_container))//如果是Activity上增加引导层,不需要设置anchor,container为根布局id,按钮1,是在右边,长方形

.addHighLight(R.id.btn_click_one,R.layout.info_known,new OnRightPosCallback(45),new RectLightShape())

.addHighLight(R.id.btn_click_two,R.layout.info_known,new OnRightPosCallback(5),new BaseLightShape(5,5) {

@Override

protected void resetRectF4Shape(RectF viewPosInfoRectF, float dx, float dy) {

//缩小高亮控件范围,按钮二是自定义图形.

viewPosInfoRectF.inset(TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,dx,getResources().getDisplayMetrics()), TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,dy,getResources().getDisplayMetrics()));

}

@Override

protected void drawShape(Bitmap bitmap, HighLight.ViewPosInfo viewPosInfo) {

//custom your hight light shape 自定义高亮形状

Canvas canvas = new Canvas(bitmap);

Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);

paint.setDither(true);

paint.setAntiAlias(true);

paint.setMaskFilter(new BlurMaskFilter(15, BlurMaskFilter.Blur.SOLID));

RectF rectF = viewPosInfo.rectF;

canvas.drawOval(rectF, paint);

}

})

.addHighLight(R.id.btn_click_three,R.layout.info_known,new OnTopPosCallback(),new CircleLightShape())

.addHighLight(R.id.btn_click_four,R.layout.info_known,new OnBottomPosCallback(10),new RectLightShape())

.setOnRemoveCallback(new HighLightInterface.OnRemoveCallback() {//监听移除回调 intercept为true时生效,按钮三是在按钮顶部,圆形高亮

@Override

public void onRemove() {

Toast.makeText(MainActivity.this, "The HightLight view has been removed", Toast.LENGTH_SHORT).show();

}

})

.setOnShowCallback(new HighLightInterface.OnShowCallback() {//监听显示回调 intercept为true时生效

@Override

public void onShow() {

Toast.makeText(MainActivity.this, "The HightLight view has been shown", Toast.LENGTH_SHORT).show();

}

});

mHightLight.show();

}

/**

* 响应所有R.id.iv_known的控件的点击事件

*

* 移除高亮布局

*

*

* @param view

*/

public void clickKnown(View view) {

if(mHightLight.isShowing() && mHightLight.isNext()){//如果开启next模式

mHightLight.next();

}else{

remove(null);

}

}

public void remove(View view){

mHightLight.remove();

}

进入页面,直接调用本方法,不能高亮提示,必须等布局都加载完毕才行,因此要在oncreate方法里这样写:

View cv = getWindow().getDecorView();

cv.post(new Runnable() {

@Override

public void run() {

showNextTipView();

}

});

如有错误,欢迎指出,QQ 525902456.

欢迎大神来喷

喜欢诗词和旅行还有装逼的小伙伴可以关注我的公众号

f17ceae71da1

QQ图片20170319152329.jpg

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐