专栏首页上善若水030android初级篇之android应用的启动界面

030android初级篇之android应用的启动界面

应用启动界面,显示产品LOGO,公司Logo或者开发者信息等,同时如果准备的工作较多,可以在显示启动界面的同时后台进行准备工作,提高用户体验。

布局文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/login_app">

</LinearLayout>

这里仅实现,显示背景图片。

代码

启动根据布局文件显示启动界面,同时如果根据需要进行准备工作, 在线程中判断是否需要做加载准备工作,然后计算时间,启动主页。

public class SplashActivity extends Activity {

    private static final long SPLASH_DELAY_MILLIS = 5000;
    private  boolean  isLogined = false;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT){
            setTranslucentStatus(true);
            SystemBarTintManager tintManager = new SystemBarTintManager(this);
            tintManager.setStatusBarTintEnabled(true);
            tintManager.setStatusBarTintResource(R.color.transparent);//通知栏所需颜色
        }
        setContentView(R.layout.splash);

        new Thread(new Runnable() {
            @Override
            public void run() {
                long start = System.currentTimeMillis();
                if(!isLogined) {
                    //准备工作

                    isLogined = true;
                }
                long costTime = System.currentTimeMillis() - start;

                if(costTime -SPLASH_DELAY_MILLIS >0) {
                    goHome();
                } else {
                    new Handler().postDelayed(new Runnable() {
                        public void run() {
                            goHome();
                        }
                    }, SPLASH_DELAY_MILLIS-costTime);
                }
            }
        }).run();

    }

    @TargetApi(19)
    private void setTranslucentStatus(boolean on) {
        Window win = getWindow();
        WindowManager.LayoutParams winParams = win.getAttributes();
        final int bits = WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS;
        if (on) {
            winParams.flags |= bits;
        } else {
            winParams.flags &= ~bits;
        }
        win.setAttributes(winParams);
    }

    /*
    @Override
    public  void onResume(){
        super.onResume();
        goHome();
    }
    */

    private void goHome() {
        Intent intent = new Intent(SplashActivity.this, EnterList.class);
        //startActivity(intent);
       // finish();
    }
}

参考链接

  1. 029android初级篇之android应用的状态栏的颜色

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 004-golang 正则表达式的使用

    上善若水.夏
  • 011android初级篇之android登录界面的设计

    登录框的自动提示功能参考一下链接中的AutoCompleteTextView的使用

    上善若水.夏
  • 044android初级篇之android app中的权限及自定义权限

    如果自定义的软件中因对外提供什么服务,而想声明一个权限,来限制此服务的使用,可以在Manifest中,声明权限。

    上善若水.夏
  • 8-51单片机ESP8266学习-AT指令(测试TCP服务器--51单片机程序配置8266,做自己的手机TCP客户端发信息给单片机控制小灯的亮灭)

    http://www.cnblogs.com/yangfengwu/p/8776712.html 先把源码和资料链接放到这里 链接:https://pan.ba...

    杨奉武
  • Android编程基于自定义控件实现时钟功能的方法

    本文实例讲述了Android编程基于自定义控件实现时钟功能的方法。分享给大家供大家参考,具体如下:

    砸漏
  • 6-51单片机ESP8266学习-AT指令(8266TCP服务器--做自己的AndroidTCP客户端发信息给单片机控制小灯的亮灭)

    链接: https://pan.baidu.com/s/1jpHZjW_7pQKNfN9G4B6ZjA     密码:nhn3 

    杨奉武
  • Android编程视频播放API之MediaPlayer用法示例

    本文实例讲述了Android编程视频播放API之MediaPlayer用法。分享给大家供大家参考,具体如下:

    砸漏
  • 学习使用Material Design控件(一)

    Google 发布的Material Design支持库,对我们的APP设计有很大的影响,如果重新设计APP,支持库应该直接用V4提升到V7了,我们可以用Too...

    砸漏
  • android自定义xmls文件属性

    在使用到自定义View的xml布局文件中需要加入xmlns:前缀=http://schemas.android.com/apk/res/你的自定义View所在...

    xiangzhihong
  • Android 蓝牙开发(扫描设备、绑定、解绑)

    公司最近给我丢了一个蓝牙开发的项目,不了解怎么办呢,那当然是从最基础的开始了,所以这里相当于做笔记了。

    晨曦_LLW

扫码关注云+社区

领取腾讯云代金券