2016-05-12 216 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