2016-10-22 146 views
0

的α值在Android我可以设置一个透明状态栏与下面的样式行:获取状态栏

<item name="android:windowTranslucentStatus">true</item> 

我想直接根据与状态栏的相同的背景颜色状态栏来显示文本。我的问题是,如果我将背景颜色设置为我的primaryColor,它会更亮一些,因为我没有将状态栏的Alpha值添加到颜色中。

那么如何从代码中获取状态栏的alpha值以将其添加到我的背景颜色?

+0

您是否看到[this](http://stackoverflow.com/a/28041425/6950238)问题? –

+0

感谢这个答案,但它不是我正在寻找的。我想在状态栏下面显示一个视图(创建一个扩展的效果)与理智的alpha值,并不想绘制在它后面。 – Cilenco

+0

你试过像[在这[]](http://stackoverflow.com/a/35150398/6950238)问题获得截图,并获得对应于StatusBar的像素的alpha值,就像在[that](http://stackoverflow.com/问题/ 7645607/Android的检查-α-的像素)? –

回答

0

你想要这样吗?

enter image description here

如果是的话。 Android 5.0之后。 您应该将colorPrimaryDark设置为与colorPrimary相同。 colorPrimaryDark表示状态栏颜色。 其中一个重要的一步,如果你的布局像这样的代码:

<android.support.design.widget.AppBarLayout 
    android:layout_height="wrap_content" 
    android:layout_width="match_parent" 
    android:theme="@style/AppTheme.AppBarOverlay"> 

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

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

删除 “AppBarLayout”。更改为:

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