2017-10-07 15 views
2

私は、白い画面を避けるための正しい方法をオンラインで検索しています - 私のAndroidアプリが起動したときにスプラッシュスクリーンに置き換えてください。 は私がスタートアップ時に白い画面を取り除く

<style name="AppTheme.SplashTheme"> 
    <item name="android:windowNoTitle">true</item> 
    <item name="android:windowActionBar">false</item> 
    <item name="android:windowFullscreen">true</item> 
    <item name="android:windowContentOverlay">@null</item> 
    <item name="android:windowIsTranslucent">true</item> 
</style> 

のようなスタイルを使用しています。しかし、私の場合はこれが唯一の(ビューは数秒後に膨張)アプリが動作しないとして機能する、ビューの外観を遅らせるソリューションを見つけました。私はいくつかのビューを私が決めたいくつかのビューを望んでいない、私はちょうど何か私のアプリを読み込む必要があるカスタムに空の画面を置き換えたいと思う。 希望の動作をさせる唯一の方法は、SplashscreenActivityのスタイルでdrawableを背景として配置することでした。

<item name="android:windowBackground">@drawable/background_splash</item> 

今、私は背景-ためscreens-の異なる解像度の画像としてを配置するのではなく、XMLのレイアウトを設定していないたいと思います。 これは可能ですか?ビューの外観を遅らせることなく空白の画面を取り除く最も良い方法は何ですか?

答えて

2

  • は、以下の内容でres/drawableフォルダ内のXMLファイルを作成し、次のようにあなたはそれを行う必要があります。これはあなたのスプラッシュスクリーンとして機能します。さんはその後、あなたはスプラッシュビューのタイトルバーなしstyle/themeを指定するので、あなたのstyle.xmlファイルにstyleの下に追加する必要があり、それsplash.xml

    <?xml version="1.0" encoding="utf-8"?> 
    
    <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
        <item android:drawable="@color/colorPrimary" /> 
        <item> 
         <bitmap android:src="@drawable/splash_logo" 
        android:gravity="center" /> 
        </item> 
    </layer-list> 
    
  • に名前を付けましょう。バック通常AppTheme

    という名前のデフォルトのアプリケーションのテーマにテーマを変更する(私の例MainActivityに)そのlauncher activityで最後にSplashTheme

    <activity 
        android:name=".MainActivity" 
        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> 
    
  • を使用するようにlauncher activityAndroidManifest.xml変更theme

    <style name="SplashTheme" parent="Theme.AppCompat.NoActionBar"> 
        <item name="android:windowBackground">@drawable/splash</item> 
    </style> 
    
  • @Override 
    protected void onCreate(Bundle savedInstanceState) { 
        setTheme(R.style.AppTheme) 
        super.onCreate(savedInstanceState);  
        ... 
    } 
    

それだけです!今度はアプリケーションを実行し、もはや白い画面がないことを確認してください。

参考文献:上記のコード例を提供するためにthis postthis oneを使用しました。

+0

スプラッシュxmlでは、LinearLayouts、Fabなどのコンポーネントを正しく配置できません。私のスプラッシュスクリーンがMainActivity –

+0

のように見えたかったので、私はあなたができないと思います。このようなアイテムを含むレイアウトを使用すると、アプリを最初に起動したときに作成する時間が必要になり、再び白い画面が表示されます。 – Merka

+0

私は4つの異なる色で画面を分割する必要があるので? –

関連する問題