119

起動時に白い画面を 2 秒間表示する Android アプリがあります。私の他のアプリはこれを行いませんが、これは行います。これを修正することを期待して、スプラッシュスクリーンも実装しました。スプラッシュ スクリーンのスリープ時間を増やす必要がありますか? ありがとう。

4

18 に答える 18

169

これをカスタム スタイルに入れると、すべての問題が解決します。ハックな半透明修正を使用すると、タスク バーとナビゲーション バーが半透明になり、スプラッシュ スクリーンまたはメイン画面がスパゲッティのように見えます。

<item name="android:windowDisablePreview">true</item>

于 2016-01-23T06:15:56.497 に答える
77

ここに画像の説明を入力

あなたのチューブのように..最初は白い画面ではなくアイコン画面が表示されます。2 秒後にホーム画面が表示されます。

最初に res/drawable に 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="@mipmap/ic_launcher"/>
    </item>

</layer-list>

次に、これをテーマのスプラッシュ アクティビティの背景として設定します。styles.xml ファイルに移動し、スプラッシュ アクティビティ用の新しいテーマを追加します。

<resources>

    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
    </style>

    <style name="SplashTheme" parent="Theme.AppCompat.NoActionBar">
        <item name="android:windowBackground">@drawable/background_splash</item>
    </style>

</resources>

新しい SplashTheme で、ウィンドウの背景属性を XML ドローアブルに設定します。これを AndroidManifest.xml でスプラッシュ アクティビティのテーマとして構成します。

<activity
    android:name=".SplashActivity"
    android:theme="@style/SplashTheme">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />

        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

このリンクはあなたが望むものを提供します。ステップバイステップの手順。 https://www.bignerdranch.com/blog/splash-screens-the-right-way/

アップデート:

は、次のようにさらにシンプルにすることができます (タグlayer-listとは異なり、中央のロゴのベクター型ドローアブルも受け入れます)。<bitmap>

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- Background color -->
    <item android:drawable="@color/gray"/>

    <!-- Logo at the center of the screen -->
    <item
        android:drawable="@mipmap/ic_launcher"
        android:gravity="center"/>
</layer-list>
于 2016-11-08T08:50:03.307 に答える
8

Cyril Mottier による次の素晴らしい投稿をお読みください: Android アプリの起動がゴージャスに

Themestyle.xml でカスタマイズする必要がありonCreate、ActionBar.setIcon/setTitle/etc でカスタマイズすることは避けてください。

Google による パフォーマンスのヒントに関するドキュメントも参照してください。

Trace Viewとを使用しHierarchy Viewerて、ビューを表示する時間を確認します: Android のパフォーマンスの最適化/ Android でのパフォーマンスの調整

AsyncTask一部のビューを表示するために使用します。

于 2013-12-12T14:57:06.777 に答える
4

白い背景は Apptheme から来ています。白い画面の代わりに、アプリケーションのロゴなどの便利なものを表示できます。これは、カスタム テーマを使用して行うことができます。アプリのテーマに追加するだけです。

android:windowBackground=""

属性。属性値は、画像、階層化されたリスト、または任意の色です。

于 2016-11-01T10:08:49.400 に答える
4

両方のプロパティは、それらのいずれかを使用して機能します。

    <style name="AppBaseThemeDark" parent="@style/Theme.AppCompat">
            <!--your other properties -->
            <!--<item name="android:windowDisablePreview">true</item>-->
            <item name="android:windowBackground">@null</item>
            <!--your other properties -->
    </style>
于 2016-08-18T09:09:06.953 に答える
4

user543の答えは完璧です

<activity
        android:name="first Activity Name"
        android:theme="@android:style/Theme.Translucent.NoTitleBar" >
 <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
 </activity>

しかし:

LAUNCHER Activityは、デフォルトでAppCompatActivityではなくActivityを拡張する必要があります。

于 2016-09-21T11:34:53.313 に答える
1

マニフェストのテーマを次のように設定することで修正できます

<activity
        android:name=".MySplashActivityName"
        android:theme="@android:style/Theme.Translucent.NoTitleBar" >
 <intent-filter>
     <action android:name="android.intent.action.MAIN" />
     <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

その後、java.lang.IllegalStateException: を取得している場合は
、このアクティビティで Theme.AppCompat テーマ (または子孫) を使用する必要があります。
その場合、MySplashActivityでAppCompatActivityの代わりにActivityを拡張する必要がある場合があります。

それが役に立てば幸い!

于 2016-06-30T12:16:45.157 に答える
1

Instant Run android studio 設定を無効にする必要があります。

File>Settings>Build,Execution,Deployment>Instant Run そこに表示されているすべてのオプションのチェックを外します。

注: Instant Runによるホワイト スクリーンの問題は、デバッグ ビルドのみで発生します。この問題は、リリース ビルドでは発生しません。

于 2017-08-23T10:05:49.440 に答える