2016-05-12 175 views
4

我正在構建Android應用程序,現在我想更改狀態欄(屏幕頂部顯示無線和區域信號,電池狀態等),但不是加工。更改Android中的狀態欄顏色

在XML文件的預覽中,它爲條顯示了不同的顏色(我想要使用橙色的陰影),但是當我在模擬器和手機上運行應用程序時,顏色保持爲白色。

我隱藏了操作欄,並在應用程序的頂部放置了一個灰色圖像。

這是XML文件

This is the preview in Android Studio for the XML file

Android Studio中預覽這是應用程序的仿真:

Emulation of the app

這是我colors.xml:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <color name="theme_color">#D8540D</color> 
    <color name="toolbar_title_color">#E66800</color> 
    <color name="grey">#d3d3d3</color> 
    <color name="maroon">#7f0000</color> 
    <color name="color_textual">#8D5020</color> 
    <color name="chef_bg_color">#F7F7F7</color> 
    <color name="line_color">#dddddd</color> 

</resources> 

還有這是我的styles.xml:

<resources> 

    <!-- Base application theme. --> 
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 
     <!-- Customize your theme here. --> 
     <item name="colorPrimary">@color/colorPrimary</item> 
     <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
     <item name="colorAccent">@color/colorAccent</item> 

     <item name="android:statusBarColor">@color/theme_color</item> 
     <item name="android:navigationBarColor">@color/theme_color</item> 
     <item name="android:colorEdgeEffect">@color/theme_color</item> 
    </style> 

    <style name="AppTheme.NoActionBar"> 
     <item name="windowActionBar">false</item> 
     <item name="windowNoTitle">true</item> 
    </style> 

    <style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" /> 

    <style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" /> 

</resources> 

Android清單:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.example.mvaguimaraes.bt"> 

    <uses-permission android:name="android.permission.INTERNET" /> 

    <application 
     android:allowBackup="true" 
     android:icon="@drawable/icon" 
     android:label="@string/app_name" 
     android:supportsRtl="true" 
     android:theme="@style/AppTheme"> 
     <activity 
      android:name=".MainScreen" 
      android:label="@string/app_name" 
      android:theme="@style/AppTheme.NoActionBar"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

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

     <activity android:name=".MainActivity" 
      android:label="@string/app_name" 
      android:theme="@style/AppTheme.NoActionBar"> 

     </activity> 

     <activity android:name=".OrderDetails" 
      android:label="@string/app_name" 
      android:theme="@style/AppTheme.NoActionBar"> 

     </activity> 

     <activity android:name=".PastOrderDetails" 
      android:label="@string/app_name" 
      android:theme="@style/AppTheme.NoActionBar"> 

     </activity> 
    </application> 

</manifest> 
+0

你可以發佈你的manifest.xml條目的活動以及活動的代碼嗎? –

+0

剛剛發佈Android Manifest! –

+0

謝謝,你還可以發佈活動代碼嗎? –

回答

1

在奇巧的狀態欄的顏色將不會改變,但你可以看到它在棒棒糖和棉花糖的變化。

在「RES /值/顏色」

<color name="colorPrimary">#3F51B5</color> 
<color name="colorPrimaryDark">#303F9F</color> 
<color name="colorAccent">#FF4081</color> 

奇巧後在這裏,「colorPrimaryDark」將應用於狀態欄和「colourPrimary」將被自動用於工具欄/動作條。

可能是這個鏈接可以幫助https://developer.android.com/training/material/theme.html

4

在你所有你指定的主題定爲NoActionBar活動清單文件。

但在styles.xml內NoActionBar主題,你有沒有下面的代碼行補充說:

<item name="android:statusBarColor">@color/theme_color</item>

上面添加的代碼行中的風格NoActionBar主題那麼你的狀態顏色酒吧肯定會改變。

但是,它會適用於API級別21和以上。

+0

'NoActionBar'主題使用點符號從'AppTheme'派生屬性,所以'android:statusBarColor'被設置,並且不需要添加該行。 – Zielony