C# 入門指南
單元 33 - 自訂 App 圖示與實機測試
基本上, Visual Studio Community 2019 有預設的 Android App 圖示,如以下圖示
檔案名稱 ic_launcher.png 、 ic_launcher_foreground.png 、 ic_launcher_round.png 三者都是圖示檔案,關於 Android App 圖示,詳情可以參考官方文件 Android Developers - 自動調整圖示。
這個資料夾位於專案 (project) 的 📁Resources 資料夾中, Android App 圖示有五種尺寸,如下圖分別在五個起始名稱為 mipmap- 的資料夾中
下面為五個資料夾中的圖示尺寸表
資料夾名稱 | 尺寸 |
---|---|
📁mipmap-mdpi | 48×48 |
📁mipmap-dpi | 72×72 |
📁mipmap-hdpi | 96×96 |
📁mipmap-xhdpi | 144×144 |
📁mipmap-xxhdpi | 192×192 |
以下是我們為這個範例 App 所準備的圖示
如果要在 Google Play 上架,就需要額外準備 512×512 的圖檔上傳到 Google Play Console ,因此自己準備好圖示最好尺寸至少 512×512 。
製作好圖示,然後逐一到每一個資料夾去置換檔案,如下
這裡是利用 Android Studio 中的 Image Asset Studio 製作圖示,詳情請參考官方文件 Android Developers - 使用 Image Asset Studio 创建应用图标。
下面開始實機測試,將 Android 手機利用 USB 線插入電腦,執行鍵就會從模擬器改成 Android 手機
實機測試的 Android 手機要先打開「開發人員選項」,打開的方式是找到版本號的地方,長按版本號,接下來 Android 系統就會跳出要打開「開發人員選項」的後續動作,此外也要把「USB偵錯」的選項開啟。
點擊 Android 手機的執行鍵,過一會就會在手機上開啟 App
點擊開始編碼就會進入編碼功能頁
如果到 Android 的「應用程式」頁,就會看到編密碼的 App 已安裝到手機上
這裡安裝 App 後的圖示還沒有變成自訂圖示,這是因為還沒「封存」與「散發」,待下一個單元的步驟結束後,重新安裝到手機上就會變成自訂的圖示。
利用 Visual Studio Community 2019 可以直接將範例 App 安裝到測試手機上,不過要上架應用程式商店,還得打包成 apk 檔,下一個單元介紹如何打包, Visual Studio Community 2019 用的術語叫做「封存」及「散發」。
相關教學影片
中英文術語對照 | |
---|---|
專案 | project |
參考資料 | |
---|---|
1. Visual Studio | Microsoft Docs - Xamarin.Android 使用者入門 | |
2. Xamarin | Microsoft Docs - 準備可供發行的應用程式 |
重點整理 |
---|
1. Visual Studio Community 2019 有預設的 Android App 圖示。 |
2. Android App 圖示有五種尺寸,分別為 48×48 、 72×72 、 96×96 、 144×144 、 192×192 。 |
3. 將 Android 手機利用 USB 線插入 Windows 電腦, Visual Studio 的模擬器就會自動出現該 Android 手機。 |
問題與討論 |
---|
1. 為什麼 Android App 的圖示要準備五種? |
2. 既然已經在 Visual Studio 的模擬器測試過了,為什麼還要做實機測試? |
練習 |
---|
1. 承接上一單元的 HelloAndroidDemo 專案,利用 Count 為單數時,將 TextView 的文字設定為「你好」, Button 的文字設定為「再按」,反之維持原始設定。 |
2. 承接上一單元的 GuessAndroidDemo 專案,加入 WpfAppDemo 專案的 Program.cs ,並在 GameActivity.cs 中加入以下程式碼
|
3. 承上題,將 GameActivity 類別的視窗元件都設定為屬性,另外加入屬性 Guess 型態的 GameObject , string 的 UserInput , int 的 Count 及 Number , bool 型態的 State 。 |
4. 承上題,在 GameActivity 中以 Intent 類別的 GetStringExtra() 方法可以取得從 MainActivity 傳來的數值,利用此數值設定 GameObject 。 |