开发环境:Windows 10 x64,Android Studio 3.0
很多APP都会在启动主界面(MainActivity)之前显示一个短暂的欢迎页面,设置微博,知乎,百度之类APP还是在欢迎页面上显示广告。
尝试着做一个欢迎页面,会短暂停留三秒后转到主界面。
创建了WelcomeActivity,然后在自动生成的activity_welcome.xml布局上随便写一个布局。
回到WelcomeActivity.java,将OnCreate修改如下:
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_welcome); Handler handler = new Handler(); //当计时结束,跳转至主界面 handler.postDelayed(new Runnable() { @Override public void run() { Intent intent = new Intent(WelcomeActivity.this, MainActivity.class); startActivity(intent); WelcomeActivity.this.finish(); } }, 3000); }
MainActivity是app的主界面。
为了让app启动的时候显示现实Welcome页面,我们还需要修改一下AndroidManifest.xml文件:
---------------------------------------------------------------------------------------------------------------------------------------------------------
至于引导页面,一般出现在app安装后首次使用的时候。
我们先创建一个item_guide.xml文件,作为引导页面的布局文件。
全屏的图片 引导页面下端的一组RadioButton,会显示当前是第几页的引导页 按钮,出现在最后一个页面
为了不同引导页让RadioButton显示不同的状态,我们需要顶一个selector
在drawable文件夹添加三个文件:launch_guide_radio_btn.xml, icon_point_c.png, icon_point_n.png 文件内容分别如下:
然后,我们需要定义一个Adapter
public class LaunchSimpleAdapter extends PagerAdapter { private LayoutInflater mInflater; private Context mContext; private ArrayListmViewList = new ArrayList (); public LaunchSimpleAdapter(Context context, int[] imageArray) { mInflater = LayoutInflater.from(context); mContext = context; for (int i=0; i
最后,我们需要创建GuideActivity
public class GuideActivity extends AppCompatActivity { private int[] lanuchImageArray = { R.drawable.guide_1, R.drawable.guide_2, R.drawable.guide_3, R.drawable.guide_4}; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_guide); ViewPager vp_launch = (ViewPager) findViewById(R.id.vp_launch); LaunchSimpleAdapter adapter = new LaunchSimpleAdapter(this, lanuchImageArray); vp_launch.setAdapter(adapter); vp_launch.setCurrentItem(0); }}
这样,一个最建议的引导页面就完成了。当然,现在的引导页面不是全屏的。如果希望全屏,我们可以做如下修改:
在values/styles.xml页面添加一个样式:
然后在AndroidManifest.xml修改一下:
参考文章: