安卓項目01:appIcon及啟動頁

做安卓開發(fā)的時候,如果按順序來說,首先需要做的是設(shè)置app的名字、app的圖標和啟動頁。

1.app名字的設(shè)置

名字的設(shè)置非常簡單,一般工程創(chuàng)建后,app默認的名字是工程的名字,只要在res-values-strings.xml中修改app_name后面的值即可,如:

<string name="app_name">我的安卓</string>

2.app圖標的設(shè)置

app圖標的設(shè)置與iOS類似,需要將圖標放到相應(yīng)的資源文件夾下即可,安卓圖標有5種尺寸、2個規(guī)格和1個特別情況。
5種尺寸為:48×48、72×72、96×96、144×144、192×192;
2種規(guī)格為:圓形、方形帶圓角;
1個特別情況是:Android 8.0以上需要前景層和背景層設(shè)置;

設(shè)置app圖標的操作:

1.需要問UI要兩種規(guī)格的app圖標:圓形和方形帶圓角,尺寸可以要最大的192×192,然后自己再分別壓縮圖片尺寸拿到其他四種較小尺寸的圖片;
2.將方形帶圓角的圖片統(tǒng)一命名為:ic_launcher.png、圓形圖片統(tǒng)一命名為ic_launcher_round.png;注意命名中不能有大寫字母,否則會報錯(搞不懂是為什么);當然圖片名稱也可以自己命名成其他的名稱,但需要到配置文件中進行修改;
3.在res下,有mipmap-hdpi、mipmap-mdpi、mipmap-xhdpi、mipmap-xxhdpi、mipmap-xxxhdpi這五個文件夾;在這五個文件夾中分別放入:72×72、48×48、96×96、144×144、192×192五種規(guī)格的圖片;特別注意,hdpi文件夾中應(yīng)放入72×72的圖標。
4.Android8.0以上的圖標適配,具體可以參考https://blog.csdn.net/CheacK66/article/details/81541632 這篇博客,說的很清楚。

3.app啟動頁的設(shè)置

Android下的啟動頁,設(shè)置要比iOS的更為復(fù)雜,iOS的機型不多,所以只需要將各自尺寸的啟動圖拖到對應(yīng)的機型中即可,但Android的機型太多了,所以需要自己創(chuàng)建一個activity,在這個activity中添加鋪滿全屏的啟動圖片。
具體操作為:
1.創(chuàng)建一個啟動頁activity,這里命名為BYStartupActivity;
2.在res-value-styles.xml中設(shè)置啟動頁的樣式,防止出現(xiàn)點擊圖標啟動-短暫白屏或黑屏-顯示啟動頁這個問題。

 <!--應(yīng)用啟動頁的樣式設(shè)置:防止出現(xiàn)白屏-->
    <style name="ThemeSplash" parent="Theme.AppCompat.Light.NoActionBar">
         <!--startup_ic是啟動頁的背景圖片-->
        <item name="android:background">@drawable/startup_ic</item>
        <item name="android:windowNoTitle">true</item>
        <item name="android:windowFullscreen">true</item>
        <item name="windowActionBar">false</item>
        <!--隱藏狀態(tài)欄的-->
        <item name="windowNoTitle">true</item>
    </style>

3.在配置文件中,將第一個activity改為啟動頁BYStartupActivity

  <activity android:name=".MainActivity" />
        <!--設(shè)置啟動頁的theme樣式,防止出現(xiàn)白屏-->
        <activity android:name=".BYStartupActivity" android:theme="@style/ThemeSplash">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

4.在啟動頁BYStartupActivity中處理一些其他任務(wù)(比如網(wǎng)絡(luò)請求或廣告)然后跳轉(zhuǎn)到MainActivity

public class BYStartupActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //在onCreate之后、setContentView之前會出現(xiàn)短暫的白屏或黑屏,這是因為頁面的窗體繪制優(yōu)先于資源加載了,
        //解決方法是在配置文件中,引入theme,在styles中設(shè)置啟動頁的樣式:style name="ThemeSplash",這里不再加載contentView
//        setContentView(R.layout.activity_bystartup);

        //加載啟動頁
        initRequestStartUpView();
    }
  private void initRequestStartUpView(){//并加載網(wǎng)絡(luò)請求
        new Thread(new Runnable() {//開啟子線程
            @Override
            public void run() {
                //在子線程中執(zhí)行一個耗時任務(wù),比如加載網(wǎng)絡(luò)請求

                runOnUiThread(new Runnable(){//回到主線程更新UI
                    @Override
                    public void run() {
                        Intent intent = new Intent(BYStartupActivity.this, MainActivity.class);//從當前Activity跳轉(zhuǎn)至首頁的MainActivity
                        startActivity(intent);//開啟一個新意圖
                        BYStartupActivity.this.finish();//關(guān)閉當前的Activity
                    }
                });
            }
        }).start();//啟動子線程
    }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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