Android – 以编程方式更改pre-lollipop设备上的状态栏颜色

我想以编程方式更改pre-lollipop设备上的状态栏颜色.我很清楚材料设计colouPrimaryDark不会在棒棒糖前工作,因为状态栏颜色是操作系统本身的关注,前棒棒糖设备不会提供这样的功能.所以我想通过java文件以编程方式进行.那可能吗?

目前我正在使用这种材料设计代码.

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

因为这不适用于21以下的API.所以我想通过java来做到这一点.

解决方法:

实际上,我们可以在KitKat上使用它.

检查此链接:http://developer.android.com/reference/android/R.attr.html#windowTranslucentStatus

  • Has been added in API level 19 which means, there is a way to do that.check my blog about using it with 07001:
    07002
  • And this is the another method(without using CoordinatorLayout): 07003

只需将其添加到布局的顶部:

<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.

上一篇:android – 从全屏活动开始新活动会导致状态栏覆盖操作栏


下一篇:Python tkinter标签在功能开始时不会改变