Android MonoDroidで記述されたアプリケーションのスプラッシュスクリーンを表示するために次のスタイルを使用しています。しかし、アスペクト比をめちゃくちゃにしながら画像を取り、画面全体に収まるように最大化しているようです。したがって、画像は巨大でひどいように見えます。
それを最大化する方法はありますが、アスペクト比を維持して、見栄えをよくすることはできますか?
<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));
}
}
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ドキュメント に記載されています。
アスペクト比をめちゃくちゃにしながら、画像を取り、最大化して画面全体に収まるようです。したがって、画像は巨大で恐ろしく見えます。
それを最大化する方法はありますが、アスペクト比を維持して、見栄えをよくしますか?
画像が拡大される理由は、使用する画像がアプリをテストしているデバイス画面の解像度よりも高いピクセルであるためです。これを解決するには、最良の方法は、適切なサイズ(ピクセル)の画像を別のデバイス画面に作成し、それらをに配置することですそれに応じて、drawableファイル(drawable-ldpi、drawable-mdpi、drawable-hdpiなど)。
以下は、Googleが提供するさまざまなディスプレイの最小画面サイズのリストです(すべてピクセル単位)。
Androidモバイルデバイス
LDPI- 426 x 320
MDPI- 470 x 320
HDPI- 640 x 480
XHDPI- 960 x 720
Androidタブレットデバイス
LDPI- 200 x 320
MDPI- 320 x 480
HDPI- 480 x 800
XHDPI- 720 x 1280
XMLドローアブルをres/drawableに作成して、スプラッシュアクティビティの背景layer-list
を使用してテーマ(Theme.Splash)で。画像は<bitmap>
にロードされ、centerがgravity属性を使用して整列されます。
<!-- background_splash.xml -->
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:Android="http://schemas.Android.com/apk/res/Android">
<item
Android:drawable="@color/gray"/>
<item>
<bitmap
Android:gravity="center"
Android:src="@drawable/splashscreenimage"/>
</item>
</layer-list>
style(Theme.Splash)およびbackground_splash.xmlをテーマのスプラッシュアクティビティのbackgroundとして設定します。
<style name="Theme.Splash" parent="Android:Theme">
<item name="Android:windowBackground">@drawable/background_splash.xml</item>
<item name="Android:windowNoTitle">true</item>
</style>
これで、アスペクト比を維持したまま画像を中央に配置する必要があります。
注:画像のサイズ変更には、Adobe Photoshopを使用できます(作業しやすいと思います)。スプラッシュスクリーンに必要な正しい画像サイズを取得するには、少し実験を行う必要があります。
好みに応じて、9パッチ画像を使用して、画像の境界線を画面のサイズに合わせて引き伸ばすことができます。画像。
参照リンク:
Building Splash Screen:https://plus.google.com/+AndroidDevelopers/posts/Z1Wwainpjhd
スプラッシュ画面の画像サイズ:ldpi、mdpi、hdpi、xhdpiディスプレイのAndroidスプラッシュ画面サイズ?-例:ldpiの1024X768ピクセル