前言
一个app用户刚上手的时候可能面对界面上很多信息无所适从,所以这时候可能一个简单的新功能指引是非常必要的,至少用户戳戳戳几下就能知道点了那个地方能干些什么。
今天的内容就是实现这个功能,但是这次不是自己写了,感谢github,感谢伟大的开源精神。推荐的是两个项目,一个满足基本需求;一个满足各种需求。各位小伙伴在看了文章和代码之后自行取舍适合自己的。
上代码
我在自己某个项目中使用的是第二个.
上说明
主要说的是第二个,因为第一个没用过...
只需要复制作者项目里面的GuideView类就可以了。主要作者在里面定义了两个色值,自己去color里面添加一下。另外,这个类调用了getViewTreeObserver().removeOnGlobalLayoutListener()
方法,它需要的最低SDK版本是16,注意更改一下。
因为是新功能的高亮指引,所以必须一上来就出效果,而且是只出这第一次打开app的效果,所以需要在oncreat或者onresume方法中调用,然后自己使用sp判断一下是不是第一次打开就行啦。
设置方法也很清楚明了,这里是使用文字+图片,图片可以自行替换,比如把R.mipmap.ic_launcher替换成箭头:
// 使用文字+图标
final TextView tv2 = new TextView(this);
tv2.setText("欢迎使用");
Drawable d = getResources().getDrawable(R.mipmap.ic_launcher);
d.setBounds(0, 0, 50, 50);
tv2.setCompoundDrawables(d , null, null, null);
tv2.setTextColor(getResources().getColor(R.color.white));
tv2.setTextSize(30);
//tv2.setGravity(Gravity.CENTER);
上面这个是准备要显示的东西,最后要将其显示到目标区域:
GuideView guideView = GuideView.Builder.newInstance(this)
.setTargetView(btnTest2)//要突出的目标
.setCustomGuideView(tv2)//对目标进行的解释,就是上面准备那个
.setDirction(GuideView.Direction.LEFT_BOTTOM)//设置位置
.setShape(GuideView.MyShape.RECTANGULAR) // 设置矩形显示区域,
.setRadius(80) // 设置圆形或矩形透明区域半径,默认是targetView的显示矩形的半径,如果是矩形,这里是设置矩形圆角大小
.setBgColor(getResources().getColor(R.color.shadow))//背景颜色
.setOnclickListener(new GuideView.OnClickCallback() {
@Override
public void onClickedGuideView() {
guideView.hide();//点一下隐藏自己或者开启下一个需要指引的地方
}
})
.build();
在一个方法里面设置那么三四个高亮指引,然后在oncreat或者onresume方法中调用就ok啦。
上效果图
最后
说说这个GuideView
,继承自RelativeLayout,onDraw
方法中枚举了CIRCULAR圆形, ELLIPSE椭圆, RECTANGULAR圆角矩形三种图形,可以在这里去增加自己想要的,比如五角星什么的。静态类Builder中可以自定义各种零件的属性来装饰guiderView,具体的那些看代码啦~
上代码
文中给出的是第二个的代码,虽然demo是我自己的写的,但是跟作者那个也如出一辙,这里就不放我的代码了。
【功能篇】扩展阅读
《Android APP应该有的东西》之功能篇:版本检测更新
简书地址:简书主页,专注技术类
转载请注明出处,蟹蟹!
-------我的梦想真的是做一条咸鱼!