1

これが実際にプログラミングの質問であるかどうかが明らかではなかったため、完全な編集

Galaxy S4 では、通知バーはデフォルトで透明です。組み込みの「バブル」壁紙を使用すると、たとえば次のようになります。

泡の壁紙付きの通知バー

今、私は自分のライブ壁紙を開発しました。簡単にするために、スクリーンショット用に使用可能なキャンバスを埋めるだけです0xFFFF0000が、通常は別のシーンが表示されます。Galaxy S4 では、壁紙に透明な通知バーが表示されませんが、デフォルトの黒い通知バーが表示されます。

壁紙付きの通知バー

ここのロック画面でも、壁紙に透明なバーが表示されることがあります。ただし、動作を確実に再現することはできませんでした。

私の壁紙透明バー

私の質問は単純です: 私の壁紙コードまたはマニフェストから透明な通知バーを確実に有効にする方法はありますか? 実際には、透明バーと黒バーの予測不可能な切り替えにより、常に黒バーを使用する場合よりもユーザー エクスペリエンスが大幅に低下します。

4

2 に答える 2

1

これは、ルート化されていない S4 で実際に可能です。

public static boolean setTransparentNotificationBarTouchWiz(View view) {
    try {
        Field field = View.class.getDeclaredField("SYSTEM_UI_FLAG_TRANSPARENT_BACKGROUND");
        Class<?> t = field.getType();
        if (t == int.class) {
            int value = field.getInt(null);
            view.setSystemUiVisibility(value);
            return true;
        }
    } catch (NoSuchFieldException e) {
    } catch (IllegalAccessException e) {
    }

    return false;
}

このフラグを共有してくれた Kevin @ TeslaCoil に感謝します。

于 2013-08-26T07:32:19.247 に答える
0

申し訳ありませんが、カスタム ROM を作成している場合を除き、アプリのステータス バーのみを変更したい場合を除き、これは不可能です。

これには、かなりの労力が必要になります。

まず、マニフェストに Theme.NoTitleBar.Fullscreen を追加する必要があります。

 <application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name" 
    android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
    >

次に、ステータスバーを表す標準レイアウトを作成する必要があることを完了したら、これは時間を追加する必要があり、他のアプリからのすべての通知も受信する必要があることを意味します。私は個人的にそれを行う方法を知りませんが、きっと道はある。

この幸運を本当にやりたいのなら、あなたの前には苦労があります。

于 2013-06-05T10:11:21.467 に答える