Android - 以编程方式更改前棒棒糖设备上的状态栏颜色
Android - Change status bar color on pre-lollipop devices programatically
我想以编程方式更改前棒棒糖设备上的状态栏颜色。我很清楚 material 设计 colouPrimaryDark 不会在 pre-lollipop 上工作,因为状态栏颜色是 OS 本身的关注点,而 pre-lollipop 设备不会提供这样的功能。所以我想通过 java 文件以编程方式进行。这可能吗?
目前我正在使用这个 material 设计代码。
<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.
来完成
根本不是 os 可以 os 自己来管理这些事情。棒棒糖之前的 android 版本不会给予更改状态栏颜色的特权。
实际上,我们可以在 + KitKat
.
上使用它
检查这个 link: 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 SystemTintBar
:
https://linx64.ir/blog/2016/02/05/translucent-statusbar-on-kitkat/
- And this is the another method(without using
CoordinatorLayout
): Translucent StatusBar on kitkat with FrameLayout above the Toolbar and using CoordinatorLayout
只需将其添加到布局的顶部:
<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
。
我想以编程方式更改前棒棒糖设备上的状态栏颜色。我很清楚 material 设计 colouPrimaryDark 不会在 pre-lollipop 上工作,因为状态栏颜色是 OS 本身的关注点,而 pre-lollipop 设备不会提供这样的功能。所以我想通过 java 文件以编程方式进行。这可能吗?
目前我正在使用这个 material 设计代码。
<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.
来完成根本不是 os 可以 os 自己来管理这些事情。棒棒糖之前的 android 版本不会给予更改状态栏颜色的特权。
实际上,我们可以在 + KitKat
.
检查这个 link: 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 withSystemTintBar
: https://linx64.ir/blog/2016/02/05/translucent-statusbar-on-kitkat/- And this is the another method(without using
CoordinatorLayout
): Translucent StatusBar on kitkat with FrameLayout above the Toolbar and using CoordinatorLayout
只需将其添加到布局的顶部:
<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
。