0

我有这样的渐变值:linear-gradient(to right, #0072FF,#00C6FF)。你能告诉我如何将它应用到Android 状态栏吗?

我已经尝试如下所示。但它不起作用。

this.statusBar.backgroundColorByHexString('linear-gradient(to right, #0072FF,#00C6FF)');

这种简单的工作正常:

 this.statusBar.backgroundColorByHexString('#0072FF');
4

2 回答 2

0

您可以使用半透明状态栏并将渐变背景设置为与状态栏具有相同高度的布局。

对于设置状态栏 Translucent,将此行添加到您的主题中:

<item name="android:windowTranslucentStatus">true</item>
于 2017-06-24T19:51:25.597 回答
0

您可以像这样设置背景颜色渐变:

 Window window = activity.getWindow();
 Drawable background = activity.getResources().getDrawable(R.drawable.gradient_theme);
 window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
 window.setStatusBarColor(activity.getResources().getColor(R.color.transparent));
 window.setNavigationBarColor(activity.getResources().getColor(R.color.transparent));
 window.setBackgroundDrawable(background);

但它适用于 api 21 及更大版本

并且您的渐变主题在 drawables 中应该是这样的:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape>
            <gradient
                android:angle="90"
                android:startColor="@color/colorPrimary"
                android:endColor="@color/color_primary_100"
                android:type="linear" />
        </shape>
    </item>
</selector>
于 2017-06-24T19:53:32.553 回答