web-dev-qa-db-ja.com

Android 4.4 KitKatの半透明ステータスバーを利用する

Android 4.0-4.3のメモ取りアプリケーションをリリースしたとき、標準の明るいアクションバーと暗いアクションバーを使用する代わりに、カスタムアクションバーの色とカスタムアクションバーアイコンを使用しました。) Android 4.4の場合、ステータスバーには、アクションバーで使用しているカスタムカラー(#FFD060)も表示されます。現在のステータスバーを簡単に変更する方法はありますか? styles.xmlは4.4がこれを利用できるようにしますか?

Values-v19フォルダーの下のstyles.xmlは次のとおりです。

<resources>

<style name="AppBaseTheme" parent="@Android:style/Theme.Holo.Light">
   <item name="Android:actionBarStyle">@style/MyActionBarTheme</item>
</style>

 <style name="MyActionBarTheme" parent="@Android:style/Widget.Holo.Light.ActionBar">
     <item name="Android:background">#ffd060</item>
     <item name="Android:textColor">#fff</item>   
     <item name="Android:icon">@drawable/action</item>
     <item name="Android:titleTextStyle">@style/MyTextAppearance</item>
 </style>

 <style name="MyTextAppearance" parent="Android:TextAppearance.Holo.Widget.ActionBar.Title">
     <item name="Android:icon">@drawable/action</item>
     <item name="Android:textColor">#ffffff</item>
 </style>
</resources>

私は実装しようとしました:

 <item name="Android:windowTranslucentStatus">true</item>

これにより、アプリケーションのコンテンツが上に移動し、ステータスバー領域から開始され、アクションバーで覆われます。

Without the translucent code

22
Amonstan

更新:Translucentテーマの追加に関する Matt Gaunt (Google Employee)からのこの素晴らしい記事が見つかりましたAndroidアプリ。これは非常に詳細であり、このスタイルを実装する際に多くの人が抱えていると思われるいくつかの問題に対処します: Androidの半透明テーマ

以下をカスタムスタイルに追加するだけです。これにより、ActionBarの背後にあるコンテンツがウィンドウの上部に移動するのを防ぎます。ただし、画面の下部についてはわかりません。

<item name="Android:fitsSystemWindows">true</item>

クレジット: Kit-Katの透明ステータスバーシステムUI

15
thunsaker

必要なのは、この要素を、半透明のステータスバーが必要なテーマに追加することだけです。

<item name="Android:windowTranslucentStatus">true</item>
2
hichris123

これらの行をメインテーマに追加します

<style name="AppTheme" parent="Android:Theme.Holo.Light">
    <item name="Android:windowTranslucentStatus">true</item>
    <item name="Android:windowTranslucentNavigation">true</item>
    <item name="Android:fitsSystemWindows">true</item>
</style>
2

ステータスバーの色をwindowBackgroundに変更するには

 <item name="Android:windowBackground">@color/window_bg</item>

ステータスとナビゲーションバーに半透明効果を追加するには

<item name="Android:windowTranslucentStatus">true</item>

<item name="Android:windowTranslucentNavigation">true</item>
0
Ravi Rawal

ビューの背景色を更新するだけで十分です。

<FrameLayout 
    xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:layout_width="match_parent"
    Android:layout_height="match_parent"
    Android:background="#ffd060" >

    <LinearLayout
        Android:layout_width="match_parent"
        Android:layout_height="match_parent"
        Android:background="@Android:color/background_light"

        <!-- your stuff here -->
    </LinearLayout>
</FrameLayout>

AppBaseThemeでグローバル背景色を指定することも機能しますが、すべてのデフォルトの背景色になるため、混乱を招く可能性があります。

0
Paito