Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

GitPhoenix/Guide

Open more actions menu

Repository files navigation

Guide防彩之云APP启动页和导航页,并解决了启动黑屏问题

######效果图: guide.gif
一:启动页

  • 2秒后进入主界面或者导航页
new Handler().postDelayed(new Runnable() {
	@Override
	public void run() {
		//判断是不是第一次启动此应用,第一次启动进入GuideActivity,否则直接进入MainActivity
		if (!SPUtil.getBoolean(Constant.SP_IS_FIRST_LOGIN, false)) {
			StartActivityUtil.startActivity(LaunchActivity.this, GuideActivity.class);
		}else {
			StartActivityUtil.startActivity(LaunchActivity.this, MainActivity.class);
		}
		finish();
	}
}, 2 * 1000);
  • 启动黑屏问题 我们常见的app启动样式有1.点击应用1-3秒后才会弹出启动界面2.有的点击后立即就弹出启动界面,还有的点击后会出现黑屏,白屏的问题。
    • 方法一:给app的启动页设置图片背景,此时点击应用会立即启动
<!--窗体背景,这个背景能在第一时间显示, 避免启动时白屏-->
<style name="LaunchTheme" parent="Theme.AppCompat.NoActionBar">
    <item name="android:background">@drawable/img_launch</item>
    <item name="android:windowFullscreen">true</item>
</style>
 * 方法二:设置背景为透明色,此时有启动延迟的感觉,其实应用早已启动了,只是背景透明的,看到的还是手机桌面罢了。
<!--窗体背景,这个背景能在第一时间显示, 避免启动时白屏-->
<style name="LaunchTheme" parent="Theme.AppCompat.NoActionBar">
    <item name="android:background">@android:color/transparent</item>
    <item name="android:windowFullscreen">true</item>
</style>

二:导航页

  • 引导页 此处用四张图片来做引导页面,同时在最后一个页面提供一个按钮,点击进入主界面。
//把引导页加入到集合中,views是一个ArrayList
LayoutInflater inflater = LayoutInflater.from(this);
views.add(inflater.inflate(R.layout.view_guide_01, null));
views.add(inflater.inflate(R.layout.view_guide_02, null));
views.add(inflater.inflate(R.layout.view_guide_03, null));
views.add(inflater.inflate(R.layout.view_guide_04, null));

既然用到了ViewPager,那肯定会用到PagerAdapter并必须实现以下几个方法 destroyItem(), getCount(), instantiateItem(), isViewFromObject() 提示一下destroyItem(),instantiateItem()两个方法在高版本上已经过时了,分别把他们的第一个参数换成ViewGroup 即可。

public class GuidePagerAdapter extends PagerAdapter {
    private List<View> views;
    private Activity activity;

    public GuidePagerAdapter(List<View> views, Activity activity) {
        this.views = views;
        this.activity = activity;
    }

    @Override
    public void destroyItem(ViewGroup container, int position, Object object) {
        container.removeView(views.get(position));
    }

    @Override
    public int getCount() {
        return (views == null) ? 0 : views.size();
    }

    @Override
    public Object instantiateItem(ViewGroup container, int position) {
        container.addView(views.get(position), 0);
        //当滑动到最后一页的时候,监听按钮
        if (position == views.size() - 1) {
            TextView tvEnter = (TextView) container.findViewById(R.id.tv_guide_enter);

            tvEnter.setText(String.format(ResUtil.getString(R.string.guide_enter), APPUtil.getVersionName(activity)));
            tvEnter.setOnClickListener(new View.OnClickListener() {

                @Override
                public void onClick(View v) {
                    //在此记录曾经浏览过导航页,下次启动将不会进入导航页
                    SPUtil.put(Constant.SP_IS_FIRST_LOGIN, true);

                    StartActivityUtil.startActivity(activity, MainActivity.class);
                    activity.finish();
                }
            });
        }
        return views.get(position);
    }

    @Override
    public boolean isViewFromObject(View arg0, Object arg1) {
        return (arg0 == arg1);
    }
}

About

防彩之云APP启动页和导航页,并解决了启动黑屏问题

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

Morty Proxy This is a proxified and sanitized view of the page, visit original site.