Android Studio之啟動(dòng)界面開(kāi)發(fā)

一到學(xué)期末,事情就特別多,各種項(xiàng)目,各種作業(yè),各種考核......
作為一名Android小白,面臨著Android期末項(xiàng)目化考核,做學(xué)生嘛,肯定是要有取舍的,當(dāng)聽(tīng)到老師說(shuō)期末考試是筆試的時(shí)候,我直接就不聽(tīng)課了,聽(tīng)了有啥用,反正又不需要做項(xiàng)目,沒(méi)想到快到期末了突然又要改項(xiàng)目化考核,我人傻了......無(wú)奈之下,熬了幾個(gè)通宵,2倍速看完了全套Android網(wǎng)課教程,現(xiàn)在分階段、分模塊、分界面整理一下。

首先,先手動(dòng)創(chuàng)建一個(gè)項(xiàng)目。

第一步,新建一個(gè)項(xiàng)目,如圖所示。

第一步.png

第二步,選擇如圖所示的Activity,然后單擊下一步。

第二步.png

第三步,按順序填寫(xiě)項(xiàng)目名稱(chēng),包名和存儲(chǔ)路徑,注意:語(yǔ)言一定要選Java,選好后單擊Finish

第三步.png

然后,就來(lái)到了主界面,此時(shí)單擊如圖所示的按鈕。

image.png

單擊這個(gè)按鈕后,會(huì)有大概5秒左右的延遲,如果你看到如圖所示的界面,說(shuō)明你的環(huán)境是OK的,就可以進(jìn)入正題了,如果沒(méi)有看到如圖所示的界面,那么你最好看看你的AVDManager是否存在問(wèn)題,解決這些問(wèn)題請(qǐng)自行百度。

如果沒(méi)有這個(gè)界面請(qǐng)自行百度

接下來(lái),先實(shí)現(xiàn)啟動(dòng)界面背景圖片。
第一步,將左上角的Android切換成Project,找到MainActivity,在同一目錄下創(chuàng)建一個(gè)新activity,創(chuàng)建方法,與之前相同,這里不再贅述。

image.png

創(chuàng)建完成后,將會(huì)看到如下圖所示的啟動(dòng)界面Activity。

image.png

然后,需要上傳一張圖片,放在drawable目錄下,作為啟動(dòng)界面圖片。這里的bcg.jpg是我上傳的,大家可以自行選擇喜歡的圖片進(jìn)行運(yùn)用,格式不限,jpg或png均可。

image.png

打開(kāi)activity_welcome.xml文件,改成LinerLayout布局,添加代碼,讓啟動(dòng)界面擁有圖片和倒計(jì)時(shí)文本框

image.png

這里直接上activity_welcome.xml代碼,不用客氣。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".WelcomeActivity"
    android:background="@drawable/bcg"
    >
    <RelativeLayout

        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <TextView
            android:id="@+id/tv"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_marginRight="20dp"
            android:layout_marginTop="10dp"
            android:textSize="20sp" />
    </RelativeLayout>
</LinearLayout>

可以通過(guò)點(diǎn)擊界面最右側(cè)的preview按鈕,查看上述步驟是否正確??梢钥吹?,我這里已經(jīng)有了一個(gè)圖片及上方文本框。

image.png

我們肯定是要先跑啟動(dòng)頁(yè),再跑主頁(yè),所有我們要配置啟動(dòng)順序,找到AndroidMainfest.xml文件,按照如圖所示,將intent代碼塊放在WelcomeActivity里面

image.png
image.png

找到styles.xml文件,添加一個(gè)主題,目的是消除界面上方綠色的標(biāo)題欄

image.png

image.png

再回到AndroidManifest.xml文件,添加如圖所示的這句代碼,調(diào)用剛剛添加的style主題樣式

image.png

接下來(lái),Activity中總體來(lái)說(shuō),很簡(jiǎn)單,但如果大家第一次接觸Android可能會(huì)覺(jué)得有點(diǎn)難,所以我把代碼直接貼出來(lái),能加注釋的地方,我都盡量加了注釋?zhuān)绻欢脑挘ㄗh還是系統(tǒng)的學(xué)習(xí)一下安卓教程。

image.png
package com.wxy.homework;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.view.WindowManager;
import android.widget.TextView;

import java.util.Timer;
import  android.content.Intent;
import java.util.TimerTask;
public class WelcomeActivity extends AppCompatActivity implements View.OnClickListener {

    private int recLen = 5;//跳過(guò)倒計(jì)時(shí)提示5秒
    private TextView tv;
    Timer timer = new Timer();
    private Handler handler;
    private Runnable runnable;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //定義全屏參數(shù)
        int flag= WindowManager.LayoutParams.FLAG_FULLSCREEN;
        //設(shè)置當(dāng)前窗體為全屏顯示
        getWindow().setFlags(flag, flag);
        setContentView(R.layout.activity_welcome);
        initView();
        timer.schedule(task, 1000, 1000);//等待時(shí)間一秒,停頓時(shí)間一秒
        /**
         * 正常情況下不點(diǎn)擊跳過(guò)
         */
        handler = new Handler();
        handler.postDelayed(runnable = new Runnable() {
            @Override
            public void run() {
                //從閃屏界面跳轉(zhuǎn)到首界面
                Intent intent = new Intent(WelcomeActivity.this, MainActivity.class);
                startActivity(intent);
                finish();
            }
        }, 5000);//延遲5S后發(fā)送handler信息
    }
    private void initView() {
        tv = findViewById(R.id.tv);//跳過(guò)
        tv.setOnClickListener(this);//跳過(guò)監(jiān)聽(tīng)
    }
    TimerTask task = new TimerTask() {
        @Override
        public void run() {
            runOnUiThread(new Runnable() { // UI thread
                @Override
                public void run() {
                    recLen--;
                    tv.setText("跳過(guò) " + recLen);
                    if (recLen < 0) {
                        timer.cancel();
                        tv.setVisibility(View.GONE);//倒計(jì)時(shí)到0隱藏字體
                    }
                }
            });
        }
    };
    /**
     * 點(diǎn)擊跳過(guò)
     */
    @Override
    public void onClick(View view) {
        switch (view.getId()) {
            case R.id.tv:
                //從閃屏界面跳轉(zhuǎn)到首界面
                Intent intent = new Intent(WelcomeActivity.this, MainActivity.class);
                startActivity(intent);
                finish();
                if (runnable != null) {
                    handler.removeCallbacks(runnable);
                }
                break;
            default:
                break;
        }
    }

}

最后,激動(dòng)人心的時(shí)候到了,點(diǎn)擊運(yùn)行,全屏啟動(dòng)歡迎界面,右上方有倒計(jì)時(shí),完美運(yùn)行

image.png

如果你運(yùn)行成功了,麻煩點(diǎn)贊收藏評(píng)論留言,能幫到大家是我最大的榮幸。
后續(xù)將更新SQLLITE實(shí)現(xiàn)登錄注冊(cè)功能,
未完待續(xù)....

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容