상태 표시 줄을 검정색 아이콘이있는 흰색으로 만들려면 어떻게해야합니까?


83

내 앱의 상태 표시 줄 색상을 변경하여 검은 색 아이콘이있는 흰색 (기본 흰색 아이콘이있는 검은 색 대신)이되도록 변경하고 싶습니다. 이 작업을 수행 할 방법이 있습니까?


기본 테마 변경
Rohit5k2 2014-12-23

알림 표시 줄 아이콘을 검은 색으로 변경하려면 어떤 테마로 변경해야합니까?
Jon

사용자 정의 테마를 사용하십시오. 시작하려면 stackoverflow.com/questions/8024706/…
Rohit5k2 2014

Android 가이드 라인을 따르고 흰색 알림 아이콘이있는 앱은 어떻습니까? 사용자가 앱에있을 때 어떻게 볼 것이라고 기대합니까?
tyczj

2
하지만 당신은 사탕 상관없이 모든 아이콘이 흰색하게 사실 다른 응용 프로그램 자원의 색상을 변경할 수있는
tyczj

답변:


126

Android M (api 레벨 23)을 사용하면 android:windowLightStatusBar속성 이있는 테마에서이를 달성 할 수 있습니다 .

편집하다 :

Pdroid가 언급했듯이 이것은 프로그래밍 방식으로도 달성 할 수 있습니다.

getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR); 

2
프로그래밍 방식으로 설정할 수 있습니까?
busylee

@busylee 테마의 자식을 만들고 거기에서 변경하고 activity.getTheme.setTo (Theme another)로 적용 할 수 있다고 생각합니다
bugraoral

안녕하세요 @wrecker 애플리케이션 알림 아이콘과 동일한 문제가 있습니다. 내 테마에 android : windowLightStatusBar = true를 추가했으며 Android M에서 테스트 중이지만 타사 런처 애플리케이션 (Nova Launcher)을 사용하여 테마를 변경할 때 흰색 알림 아이콘이 회색으로 변경되지 않습니다. 가능한 모든 방법을 시도했지만 아직 고칠 수 없었습니다. 당신이 나를 도울 수 있다면 그것은 감사 할 것입니다.
Sujit

1
@busylee 예, 다음 방법을 사용하여 언제든지 설정할 수 있습니다. View.setSystemUiVisibility (View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR); 답변에 추가되어야합니다
Pdroid

6
22 또는 이전 버전에서 사용하려면 어떻게해야합니까?
Dhara Patel

45

회색 아이콘이있는 흰색 상태 표시 줄을 만들 수 있습니다 (예 : SDK> = 23의 경우 다음과 같이) ( 문서 참조 )

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="android:windowLightStatusBar">true</item>
</style>

styles.xml에서을 colorPrimary흰색 또는 프로그래밍 방식으로 설정하십시오 .

getWindow().setStatusBarColor(Color.WHITE);

2
21이 아닌 API 23에 추가되었습니다- 문서
Vadim Kotov dec

헤이 @VadimKotov 실제로 내가 쓴 SDK >= 23하지만 어떤 이유로 @being_sohelkhan 내 원래 대답은 ... 편집 한 stackoverflow.com/posts/46897243/revisions을
Rammgarot

15

Kotlin에서의 활동에 방금 추가했습니다.

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
                window.decorView.systemUiVisibility =View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR
                window.statusBarColor = Color.WHITE
            }

7

당신의 스타일에 이것을 추가하십시오

<item name="android:windowDrawsSystemBarBackgrounds">true</item>
<item name="android:statusBarColor">@android:color/transparent</item>

세트는 안드로이드 : windowDrawsSystemBarBackgrounds을사실 * . 아래에 설명이있는 플래그입니다.

이 창이 시스템 표시 줄의 배경을 그리는 데 책임이 있는지 여부를 나타내는 플래그입니다. true이고 창이 부동 상태가 아니면 시스템 표시 줄이 투명한 배경으로 그려지고이 창의 해당 영역이 {@link android.R.attr # statusBarColor} 및 {@link android.R에 지정된 색상으로 채워집니다. .attr # navigationBarColor}. {@link android.view.WindowManager.LayoutParams # FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS}에 해당합니다.


1

Kotlin에서 이런 식으로 사용할 수 있습니다.

 window.decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR

onCreate()전에 전화를하세요setContentView()


0

수동으로 커스터마이징하기 위해 전체 롬을 제어하지 않는 한 이런 방법은 없습니다. 내가 제안하는 것은 Google 드라이브와 같이 테마를 통해 상태 표시 줄 색상에 밝은 회색 색상을 사용하는 것입니다.

편집 : 이것이 안드로이드 M에서 변경되었으므로 @Wrekcker 답변을 참조하십시오.


1
Android M
Amir Dora

-1

나는 같은 문제가 있었다.

RelativeLayout과 같은 일반 레이아웃을 사용할 때 작동하지 않는다는 것을 알았습니다. 그러나 CordinatorLayout과 같은 지원 라이브러리에서 온 것으로 전환했을 때 마침내 작동하기 시작했습니다. 이 시도.

  <?xml version="1.0" encoding="utf-8"?>
    <android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fitsSystemWindows="true"
        tools:context=".Activities.Activity">


        <android.support.v7.widget.Toolbar
            android:id="@+id/tb_activity"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="?attr/colorPrimary"
            app:popupTheme="@style/AppTheme.PopupOverlay" />


    </android.support.design.widget.CoordinatorLayout>

<********* 다른 속성 아래 ************>

스타일

<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>
</style>

<style name="AppTheme.NoActionBar" parent="AppTheme">
    <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" />

그리고 매니페스트에서

<activity
            android:name=".Activities.MyActivity"
            android:label="Activity"
            android:theme="@style/AppTheme.NoActionBar">
        </activity>
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.