29

次のスタイルを使用して、MonoDroid で記述された Android アプリケーションのスプラッシュ スクリーンを表示しています。ただし、アスペクト比を台無しにしながら、画像を取得して画面全体に合わせて最大化するようです。したがって、画像は巨大でひどいものに見えます。

最大化する方法はありますが、アスペクト比を維持して見栄えを良くする方法はありますか?

<style name="Theme.Splash" parent="android:Theme">
  <item name="android:windowBackground">@drawable/splashscreenimage</item>
  <item name="android:windowNoTitle">true</item>
</style>

これは、スプラッシュ スクリーンを作成してログインに移動する C# のアクティビティです。

  [Activity(MainLauncher = true, Theme = "@style/Theme.Splash", NoHistory = true)]
  public class SplashScreenActivity : Activity
  {
    protected override void OnCreate(Bundle bundle)
    {
      base.OnCreate(bundle);

      // Start our real activity
      StartActivity(typeof(LoginActivity));
    }
  }
4

2 に答える 2

34

Android には、実際のビットマップ、9 パッチ、XML ファイルなど、いくつかの種類のドローアブルがあります。画像ファイルに属性を与える XML ファイルで画像ファイルをラップしてから、ソース画像の代わりに XML ファイルを描画可能ファイルとして使用してみてください。

xml ファイルが scaled_background と呼ばれ、元の画像が単に background.png であると仮定しましょう。

<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
android:gravity="center"
android:src="@drawable/background" />

背景を参照するように設定する代わりに@drawable/background、XML ファイルを参照するように設定します@drawable/scaled_background。この例では。スケーリング モードの詳細については、Drawable のドキュメントに記載されています。

于 2012-09-27T22:39:25.437 に答える