1. 程式人生 > >Xamarin實現將圖片設定為啟動頁——Xamarin.forms(二)

Xamarin實現將圖片設定為啟動頁——Xamarin.forms(二)

其實設定啟動頁很簡單,只是我在做的時候,踩了一些坑,就走了一些彎路。

我知道大家一點開這些部落格就想看到原始碼,在我搭建環境給的demo裡面就有一個splash的demo,多個app的demo免費相送,傳送門:https://blog.csdn.net/qq_41647999/article/details/84844357

我這裡就不慢慢的建立新專案,在一步一步的教大家做了。直接講最核心的部分還有我踩的坑。

1、 放入啟動頁圖片

開啟專案之後,如果你是安卓手機,直接把符合大小的圖片放在drawable的檔案裡面,如下圖將bg.png設為啟動頁:

我剛學xamarin的時候,以為需要設定一下圖片的路徑,才能被正常訪問。於是看了別人一篇文章,寫了一個xml的檔案和啟動頁圖片一起丟在drawable裡面,結果是啟動頁倒是顯示了,但是主頁面進不去了。我自己挖了一個坑,就是圖片名是數字就丟在資料夾裡面了,這樣是錯的。因為,每一個靜態資源放在drawable裡面,系統都會按照這個靜態資源的名稱作為變數,然後分配一個id,而大家都知道數字是不能夠作為變數的。

總結Xamarin的預設路徑就是drawable,圖片的名稱一定不能為數字。

2、 設定啟動頁圖片

下述操作均在Android的專案裡面進行。

(1) 將bg.png設為啟動頁,在styles.xml裡寫入這麼一個樣式。

<style name="SplashTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="android:windowBackground">@drawable/bg</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowFullscreen">true</item>
    <item name="android:windowActionBar">true</item>
    <item name="android:windowContentOverlay">@null</item>
  </style>

(2) 先把 MainActivity.csMainLauncher = true 刪除,這樣app一啟動就不會白屏等待載入MainActivity.cs。

(3) 建立一個SplashActivity.cs的檔案

 (4) 大致內容如下圖,把 MainLauncher = true 放到這個檔案裡面,然後寫入theme引用xml裡面寫入的style。

 程式碼還是給出來吧:

using Android.App;
using Android.OS;
namespace IntelligentWorld.Droid
{
    [Activity(MainLauncher = true, NoHistory = true, Theme = "@style/SplashTheme")]
    class SplashActivity : Activity
    {
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            // Create your application here
            StartActivity(typeof(MainActivity));
        }
    }
}

啟動頁就完成了,如果你沒有實現,歡迎您評論留言告訴我~

感謝您的閱讀!