您当前的位置: 首页 >  android

Kevin-Dev

暂无认证

  • 3浏览

    0关注

    544博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Android 项目必备(二)--> 启动页 & 引导页

Kevin-Dev 发布时间:2018-01-02 11:49:48 ,浏览量:3

在这里插入图片描述

文章目录
    • 启动页
      • 1. 启动页网络请求优化
      • 2. 启动页面网络请求优化的具体实践
      • 3. 启动页面无黑屏
      • 4.主题替换
      • 5. 启动页面屏蔽返回按键
    • 引导页
      • 1、延时启动检测
      • 2、圆点的绘制

启动页

在这里插入图片描述 一个很慢的启动页很容易让用户觉得受不了,进而“逃离” App 的,所以若想产品有更好的用户体验,做一些启动页的优化是一个不错的选择。这里我们简单介绍一下我在实践中对启动页是如何优化的。

1. 启动页网络请求优化

我们在启动页做了什么?

  • 加载 App 中 h5 页面的 url 地址;
  • 加载请求用户信息;
  • 加载首页地图页面需要展示的图标;
  • 延时三秒钟跳转首页面,这时候无论是否加载到前面的网络请求信息,都会跳转到首页面。
2. 启动页面网络请求优化的具体实践
timer = new Timer();
            timerTask = new TimerTask() {
                @Override
                public void run() {
                    if (isGoToComplete) {
                        L.i("等待2s完成,取消timer任务...");
                        cancelTimer();
                        return;
                    }
                    if (isLoadStartQueryComplete && isLoadUserInfoComplete) {
                        // 已经显示过引导图
                        L.i("StartActivity中网络请求完成,执行跳转逻辑.....");
                        handler.sendEmptyMessage(eventWhat);
                        L.i("StartActivity中网络请求完成,取消timer任务...");
                        cancelTimer();
                    }
                }
            };
            timer.schedule(timerTask, 0, 100);
3. 启动页面无黑屏

使用透明主题:

true

Activity.onCreate() 之前 App 不做显示,这样用户误以为是手机慢了,这种瞒天过海的方案大家还是不要用了。



    
    
        
        @color/colorPrimary
        @color/colorPrimaryDark
        @color/colorAccent
        true
    


4.主题替换

我们在style中自定义一个样式Lancher,在其中放一张背景图片,或是广告图片之类的。

	

        @drawable/bg
    

把这个样式设置给启动的 Activity

			

然后在 Activity 的 onCreate 方法,把 Activity 设置回原来的主题

@Override
    protected void onCreate(Bundle savedInstanceState) {
        //替换为原来的主题,在onCreate之前调用
        setTheme(R.style.AppTheme);
        super.onCreate(savedInstanceState);
    }
5. 启动页面屏蔽返回按键

一般的我们的 App 中都会在启动页面执行一些网络操作,初始化配置等,所以这时候我们是不希望用户通过按下返回按键退出 App ,因而我们需要在启动页中屏蔽返回按键,这里简单的介绍一下具体的实现:

/**
     * startActivity屏蔽物理返回按钮
     *
     * @param keyCode
     * @param event
     * @return
     */
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK) {
            return true;
        }
        return super.onKeyDown(keyCode, event);
    }
引导页

在这里插入图片描述

1、延时启动检测

用 sharedpreference 来检测:

		Timer timer = new Timer();
        timer.schedule(new TimerTask() {
            @Override
            public void run() {
                boolean isFirst = PreferencesUtils.getBoolean(SplashActivity.this,"isFirst",false);
                if (!isFirst) {
                    readyGo(GuideActivity.class);
                    PreferencesUtils.putBoolean(SplashActivity.this, "isFirst",true);
                }else{
                    readyGo(MainActivity.class);
                }
            }
        },2000);
2、圆点的绘制

我们完全可以用 shade 属性和 selector 属性帮我们绘制完成。



    
    

用 selector 就可以改变不同的颜色:



    
    

引导页界面布局文件:




    

    

    


初始化圆点:

private void initPoint() {
        //获取layout
        LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
                LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
        //设置每一个view即圆点的对左的偏移量
        params.setMargins(15,0,0,0);
        //根据图片多少来确定个数
        for (int i = 0; i             
关注
打赏
1658837700
查看更多评论
0.1522s