2016-02-10 2 views
3

Я хочу программно изменить цвет строки состояния на устройствах с предварительным леоптипом. Я хорошо знаю, что дизайн материала colouPrimaryDark не будет работать на pre-lollipop, поскольку цвет строки состояния является заботой самой ОС, которые устройства с предварительной лепкой не будут предоставлять такую ​​функцию. Поэтому я хочу сделать это программно через java-файл. Это возможно?Android - изменить цвет строки состояния на предустановленных устройствах

В настоящее время я использую этот код дизайна материала.

<resources> 

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

Поскольку это не будут работать с API ниже 21. Так что я хочу сделать это с помощью Java.

+0

Я не думаю, что это возможно. – camelCaseCoder

+0

его возможно, есть много приложений на рынке, которые делают это .. например whatsapp например –

+3

@Yash Singh: У меня есть предварительное леденецкое представление и цвет панели состояния приложения Black. – kevz

ответ

1

Фактически, мы можем использовать это на + KitKat.

Проверить эту ссылку:http://developer.android.com/reference/android/R.attr.html#windowTranslucentStatus

Просто добавьте это в верхней части макета:

<FrameLayout 
     android:id="@+id/statusbar" 
     android:layout_width="match_parent" 
     android:layout_height="25dp" 
     android:background="@color/colorPrimaryDark" /> 

И использовать это:

if(Build.VERSION.SDK_INT == 19) { 

      FrameLayout statusbar = (FrameLayout) findViewById(R.id.statusbar); 
      statusbar.setVisibility(View.GONE); 
     } 

Он должен работать на Kitkat, и, как я уже сказал, это также доступно только для + Kitkat.

+0

Это 24dp на Зефир. –

+0

@EugenPechanec - Хорошо, обновил ответ. – Mohsen

+1

Работает на API 17. Но мы не можем использовать «прокрутку вниз, чтобы видеть уведомления», как в общей строке состояния. Я также использовал activity.requestWindowFeature (Window.FEATURE_NO_TITLE); activity.getWindow(). SetFlags (WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); – ashishdhiman2007

0

Просто его невозможно решить самим os. pre-lollipop версии для Android не дают такой привилегии изменить цвет строки состояния.