1. 程式人生 > >Android 火車票訂購APP之延時頁(1)

Android 火車票訂購APP之延時頁(1)

我終於對Android下手啦!
早就想做一款APP啦!順便熟悉一下資料結構。
首先,我下載了AS,剛建立了一個工程,就爆紅了,真的難受,好像是什麼appt2的問題,上網查了以後,找到一個檔案加了一句程式碼,錯誤成警告了,後來還是老出錯,我直接解除安裝了AS,用IDEA編的,其實差不多,到現在還沒出過什麼不可抗的問題。

一開始,做了幾個頁面後安裝到真機後直接閃退,後來發現是忘了在Androidmanifest.xml裡面註冊頁面,我是真的傻。。。

第一步,我做了一個延時頁面來掩蓋開始app的白色背景。
那麼軟體在開啟時的白色或黑色背景的設定是在values/styles.xml中設定background,我們把它設定為drawable中我們設好的圖片,然後再進入我們的第一個延時頁,把這個頁面的背景也設為剛剛的圖片,我們就能實現沒有白屏的延時頁。

在這裡插入圖片描述

我們在WelActivity.java的程式碼:

package com.dianmo.flash;

import android.app.Activity;
import android.content.Intent;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.os.Handler;
import android.support.annotation.Nullable;
import android.support.v4.app.ActivityCompat;
import android.view.Window;
import android.view.WindowManager;
import android.widget.TextView;

public class WelActivity extends Activity {
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);


        final int REQUEST_EXTERNAL_STORAGE = 1;
        String[] PERMISSIONS_STORAGE = {
                "android.permission.READ_EXTERNAL_STORAGE",
                "android.permission.WRITE_EXTERNAL_STORAGE",
                "android.permission.MOUNT_UNMOUNT_FILESYSTEMS"};

//上面的語句為我們的軟體設定讀寫許可權,在Androidmanifest.xml中也要新增
        //以上是相容Android6.0執行時許可權解決方案
        
        try {
            //檢測是否有寫的許可權
            int permission = ActivityCompat.checkSelfPermission(this,
                    "android.permission.WRITE_EXTERNAL_STORAGE");
            if (permission != PackageManager.PERMISSION_GRANTED) {
                // 沒有寫的許可權,去申請寫的許可權,會彈出對話方塊
                ActivityCompat.requestPermissions(this, PERMISSIONS_STORAGE,REQUEST_EXTERNAL_STORAGE);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }



//去掉資訊欄
        this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
        setContentView(R.layout.activity_welcome);

        new Handler().postDelayed(new Runnable()
        {
            //封裝的run()方法,用在
            @Override
            public void run()
            {
//頁面跳轉
                Intent intent = new Intent(WelActivity.this,MainActivity.class);
//儲存跳轉資訊
                startActivity(intent);
//進入第二個介面前銷燬當前的活動,"finish()"銷燬活動
                WelActivity.this.finish();
            }
//這裡的數字為延時時長
        }, 1500);
    }
}

下篇我們說登入以及註冊頁面的設計和邏輯。