2017-08-19 27 views
0

スプラッシュアクティビティには、白い画面が表示されます。私はXamarinフォームプロジェクトに参加しています。スタイルを使用して背景を設定しようとしたところ、それは機能しましたが、画像が伸びてしまったので、代わりにLinearLayoutとImageViewを使用しようとしています。これは私のコードです:Androidスプラッシュアクティビティが表示されない(Xamarinフォーム)

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 

using Android.App; 
using Android.Content; 
using Android.Graphics; 
using Android.OS; 
using Android.Runtime; 
using Android.Views; 
using Android.Widget; 

namespace Buddy.Droid 
{ 
    [Activity(Label = "HeyBuddy", Icon = "@drawable/icon", Theme = "@style/splashscreen", MainLauncher = true, NoHistory = true)] 

    public class SplashActivity : Activity 
    { 
     protected override void OnCreate(Bundle savedInstanceState) 
     { 
      base.OnCreate(savedInstanceState); 

      // Create your application here 
      var imageView = new ImageView(this); 
      imageView.SetImageResource(Resource.Drawable.splash_screen); 
      var layout = new LinearLayout(this); 
      layout.SetBackgroundColor(Color.ParseColor("#0098CC")); 
      layout.AddView(imageView); 
      SetContentView(layout); 

     } 
     protected override void OnResume() 
     { 
      base.OnResume(); 
      StartActivity(typeof(MainActivity)); 
     } 
    } 
} 

答えて

1

プログラムでImageViewLayoutを作成するには:

  1. MatchParent
  2. に設定された幅と高さを持つViewGroup.LayoutParamsがあなたのImageView
  3. にlayoutparamsを割り当て作成しますドロウアブルをどのようにスケールするかについてImageView.SetScaleTypeを割り当てます(つまりImageView.ScaleType.FitCenter

注:のLinearLayoutを必要としない、ちょうどあなたのImageViewの

protected override void OnCreate(Bundle savedInstanceState) 
{ 
    base.OnCreate(savedInstanceState); 

    var layoutParams = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MatchParent, ViewGroup.LayoutParams.MatchParent); 

    var imageView = new ImageView(this) 
    { 
     LayoutParameters = layoutParams 
    }; 
    imageView.SetImageResource(Resource.Drawable.splash_screen); 
    imageView.SetScaleType(ImageView.ScaleType.FitCenter); 
    imageView.SetBackgroundColor(Color.ParseColor("#0098CC")); 

    SetContentView(imageView); 
} 

protected async override void OnResume() 
{ 
    base.OnResume(); 
    await Task.Delay(5000); // simulate some background work.... 
    StartActivity(typeof(MainActivity)); 
} 
+0

の背景色を設定してそれはまだ動作していません。私もOnResumeにコードを追加しようとしましたが、どちらも役に立たなかった。 –

+0

@MarissaCarson何が問題なのですか? – SushiHangover

+0

アクティビティはまだ白い空白の画面として表示されます。 –

関連する問題