Android 火車票訂購APP之延時頁(1)
阿新 • • 發佈:2018-12-30
我終於對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); } } 下篇我們說登入以及註冊頁面的設計和邏輯。