Androidアプリケーションを構築していますが、ステータスバー(ワイヤレス信号とエリア信号、バッテリーステータスなどを表示する画面上部のバー)を変更したいのですが、そうではありませんワーキング。
XMLファイルのプレビューでは、バーに異なる色(使用したいオレンジの色合い)が表示されますが、エミュレーターと携帯電話の両方でアプリケーションを実行すると、色は白のままです。
アクションバーを非表示にして、アプリの上部に灰色の画像を配置します。
これは、XMLファイルのAndroid Studioでのプレビューです。
そして、これはアプリケーションのエミュレーションです。
これは私の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>
テーマをNoActionBarとして指定したすべてのアクティビティのマニフェストファイル。
ただし、NoActionBarテーマ内のstyles.xmlでは、コード行の下に追加していません。
<item name="Android:statusBarColor">@color/theme_color</item>
上記のコード行をNoActionBarテーマのスタイルで追加すると、ステータスバーの色が確実に変わります。
ただし、はい、APIレベル21以上で機能します。
KitKatのステータスバーの色は変更されませんが、LollipopとMarshmallowで変更されていることがわかります。
「解像度/値/色」で
<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
次の数行を使用して、ステータスバーの色を変更できます。
Window window = getWindow();
window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
window.setStatusBarColor(Color.parseColor("#your color"));