2017-03-27 3 views
-1

私は2つのフルスクリーンのスプラッシュ画像を持って、1つは風景用で、もう1つはポートレートモード用です。例についてスプラッシュ画面画像を使用して風景と肖像画を使用して

風景画像を背景画像として表示されるべきであり、アプリケーションが肖像画像よりもポートレートモードから起動した場合、背景画像 として表示されなければならないよりもアプリがランドスケープモードから開始した場合、私はこれは以下Example

を参照していますどのように私のセットアップテーマ

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

私はのAndroidManifest.xml

012からスプラッシュ活動のために、このテーマを設定枚の
<activity 
      android:name=".activities.SplashActivity" 
      android:allowBackup="true" 
      android:label="@string/app_name" 
      android:theme="@style/SplashTheme"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 

二つのショーの土地とポートの画像は、私は、同じ名前を持つ場所2枚の画像を持っているdrawable-land-hdpisplash_screen_1.jpg画像や

活動respectivley drawable-port-hdpiフォルダ:

public class SplashActivity extends AppCompactActivity { 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); 
     startApp(); 
    } 

    private void startApp() { 
     new Handler().postDelayed(new Runnable() { 
      @Override 
      public void run() { 
        HomeActivity.startHomeActivity(SplashActivity.this); 
       finish(); 
      } 
     }, 2000); 
    } 
} 

今問題があるときにアプリが起動しポートレートモードからは完全に機能しますが、風景モードで起動すると、ポートレート画像が数ミリ秒間伸びて、グリッチ

私は次の解決策に Link 1 Link 2

を試してみました。しかし、それはイメージをロードするために数秒間初めに空白の画面を示し、そのレイアウト

からイメージをロードするためにはもう少し時間がかかるため、このソリューションは適していません

これに代わるまたは適切な解決策がお役に立ちます

+0

ソリューションが動作するはず解像度フォルダに新しい値-土地 /フォルダの中に別ののstyles.xmlファイルを作成してください。別のフォルダを作成してレイアウトファイルを追加しましたか?肖像画のものとは異なる画像で? –

+1

はい...しかし、上記のようにレイアウトから画像を読み込むには数秒間空白の画面が表示されることが多くあります –

+0

次に画像を最適化する必要があります。それは起こるべきではありません。 –

答えて

0

これはあなたの質問の答えではありません。

Spash画面の代わりに白または黒画面の

に建てられたそれ `s

、ユーザーがどのようなスプラッシュ画面を作るために切り抜いた方法を試しについてそう

以上待っ作るためではなく、活動準備まで待つことです

この

<activity 
      android:name=".MainActivity" 
      android:label="@string/app_name" 
      android:theme="@style/splashScreenTheme"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
ようyoueにマニフェスト

変更アプリのスタイルを行きますsplashScreenThemeが

<style name="splashScreenTheme" parent="@android:style/Theme.DeviceDefault.Light.NoActionBar"> 
     <item name="android:windowBackground">@drawable/splash_screen</item> 
    </style> 

あなたが親 を変更し、新しい描画可能「スプラッシュスクリーン」を作ることができることを確認して で、これはこれでアプリのスタイルが を変更

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" android:opacity="opaque"> 
    <!-- The background color, preferably the same as your normal theme --> 
    <item android:drawable="@android:color/holo_blue_light"/> 
    <!-- Your product logo - 144dp color version of your app icon --> 
    <item> 
     <bitmap 
      android:src="@drawable/splash_logo" 
      android:gravity="center"/> 
    </item> 
</layer-list> 

あなたがメインでそれをリセットすることができます私のものです0

アクティビティ開始時

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     setTheme(R.style.AppTheme222); 
} 
+1

しかし、私は向きごとに風景とポートレートのスプラッシュをロードしたい –

0

テーマを使用する必要がある場合アプローチは、その後...あなたの質問内のリンク1のとおり values-land folder

+0

グリッチ..と同じ問題は最初にストレッチのポートレート画像をロードし、数秒後にそのロード風景画像 –

関連する問題