赞
踩
https://github.com/LuckyJayce/GuideHelper.git
在github上发现的,感觉挺好用的。
第一步:创建一个guiderhelper
final GuideHelper guideHelper = new GuideHelper(MainActivity.this);
GuiderHelper用一个linklist来保存每一个引导页。
第二步: 创建引导页有两种方式
1),通过layout来设置引导页
View test = guideHelper.inflate(R.layout.custom_view_show);
TipData tipData = new TipData(test);
2),直接添加
TipData tipData1 = new TipData(R.drawable.tip1, Gravity.RIGHT | Gravity.BOTTOM, iconView);
第一个参数是覆盖的图片,第二个参数是设置该图片的相对位置(这个参数可有可无),第三个参数是要覆盖的控件。
第三步:设置引导页的相对位置
tipData.setLocation(0, 0);
第一个参数是横坐标偏移量,第二个参数是纵坐标偏移量。当然也可以在setLocation方法里设置相对位置,比如:
tipData.setLocation(Gravity.TOP,
CommonUtil.dip2px(getContext(),50),
CommonUtil.dip2px(getContext(),5));
可以给TipData设置点击监听事件
tipData4.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
guideHelper.nextPage();
}
});
当然你可以不设置监听事件,因为它默认点击后显示下一个page
第四步:添加引导页
guideHelper.addPage(tipData2);
你可以将一个TipData放在一个page上
guideHelper.addPage(false, tipData3, tipData4);
guideHelper.addPage(tipData1, tipData2, tipData3);
也可以将多个TipData放在一个page上
最后一步:guideHelper.show(false);false设置为非自动播放,true为自动播放
今天追加:pm觉得背景颜色不够深,要求修改它的背景色。看了下代码没有修改背景色的入口。找到了这行代码
baseDialog.getWindow().setBackgroundDrawable(new ColorDrawable(0x66000000));
每一页page都是一个dailog,guidehelper.show()的时候设置它的背景颜色,而且设置了固定的色值0x66000000,没有对外暴露接口。我稍微进行修改:
private static final int DEFAULT_COLOR = 0x66000000;
private int dialogBackGroundColor = DEFAULT_COLOR;
//将它设置的值保存下来并设置为默认的背景色
public void setBackGround(int color)
{
dialogBackGroundColor = color;
}
//在给它加了一个方法对外暴露,这个方法应该在show之前调用
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。