引言:接下来和大家分享一下用一个PopupWindow来做一个指引蒙板的效果。鉴于网上对于“指引蒙板”的实现例子不是太多(或者是我找不到更多的),而且好像有很多的例子都是用一个Frame布局+Fragment去完成,对于这种做法自己不太喜欢,于是突发奇想的想要自己用PopupWindow去实现。结果也是能做出自己先要的效果的。而且自己想要的功能也都实现了,使我觉得PopupWindow在真实项目中的应用还是挺广泛的。废话就到这里,下面是小量的讲解与代码的实现。
和上次一样,首先来了解一下项目的结构:
接着是项目的第一部分图片:
一、启动页和3张引导页:
public class SplashActivity extends Activity { boolean isFirstIn = false; private static final int GO_HOME = 1000; private static final int GO_GUIDE = 1001; //延迟一秒 private static final long SPALSH_DELAY_MILLIS = 1000; private static final String SHAREDPREFERENCES_FIRST_ENTER = "first_enter"; private Handler mHandler = new Handler() { @Override public void handleMessage(Message msg) { switch (msg.what) { case GO_GUIDE: goGuide(); break; case GO_HOME: goHome(); break; } super.handleMessage(msg); } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_splash); init(); } private void init() { //读取SharePreferences中需要的数据 //使用Sharepreferences来记录程序的使用次数 SharedPreferences preferences = getSharedPreferences(SHAREDPREFERENCES_FIRST_ENTER, MODE_PRIVATE); //取得相应的值,如果没有该值,说明还没写入,用true来作为默认值 isFirstIn = preferences.getBoolean("isFirstIn"