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.cs 的 MainLauncher = 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)); } } }
啟動頁就完成了,如果你沒有實現,歡迎您評論留言告訴我~
感謝您的閱讀!