Android Google Now状态栏上的渐变/阴影&;导航栏
我正在尝试做一个类似谷歌现在的状态栏和导航栏梯度 图像参考:如下所示的矩形区域 在安卓棉花糖上尝试以下选项后Android Google Now状态栏上的渐变/阴影&;导航栏,android,gradient,shadow,navigationbar,android-statusbar,Android,Gradient,Shadow,Navigationbar,Android Statusbar,我正在尝试做一个类似谷歌现在的状态栏和导航栏梯度 图像参考:如下所示的矩形区域 在安卓棉花糖上尝试以下选项后 <item name="android:windowTranslucentNavigation">true</item> <item name="android:windowTranslucentStatus">true</item> true 真的 我有以下行为 图像参考: 有谁能建议我如何在这两个方向上获得梯度吗
<item name="android:windowTranslucentNavigation">true</item>
<item name="android:windowTranslucentStatus">true</item>
true
真的
我有以下行为
图像参考:
有谁能建议我如何在这两个方向上获得梯度吗?那是一个渐变还是一个阴影?这是一个用作阴影的渐变。要实现此效果,首先要删除状态栏和导航栏的半透明参考底图。详细说明如何在较低平台设备上执行此操作;但在Android棒棒糖和更高版本上,您只需将两个样式属性设置为透明即可:
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<style name="Theme" parent="android:Theme.Material.Wallpaper.NoTitleBar">
<item name="android:statusBarColor">@android:color/transparent</item>
<item name="android:navigationBarColor">@android:color/transparent</item>
<item name="android:windowTranslucentStatus">true</item>
<item name="android:windowTranslucentNavigation">true</item>
</style>
</resources>
您还可以设置android:rotation=“180”属性,以便在屏幕底部使用相同的渐变。首先添加样式以使操作状态栏完全透明:
<!-- Base application theme. -->
<style name="TransparentTheme" parent="android:Theme.Holo.Light">
<!-- Customize your theme here. -->
<item name="android:windowBackground">@null</item>
<item name="android:actionBarStyle">@style/ActionBarStyle.Transparent</item>
<item name="android:windowActionBarOverlay">true</item>
</style>
<style name="ActionBarStyle.Transparent" parent="android:Widget.ActionBar">
<item name="android:background">@null</item>
<item name="android:displayOptions">showHome|showTitle</item>
<item name="android:titleTextStyle">@style/ActionBarStyle.Transparent.TitleTextStyle</item>
</style>
<style name="ActionBarStyle.Transparent.TitleTextStyle" parent="@android:style/TextAppearance.Holo.Widget.ActionBar.Title">
<item name="android:textColor">@android:color/white</item>
</style>
@空的
@style/ActionBarStyle.Transparent
真的
@空的
showHome | showTitle
@style/ActionBarStyle.Transparent.TitleTextStyle
@android:彩色/白色
要向其中添加scrim,请创建可绘制文件并添加以下代码:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#88000000" />
<gradient
android:angle="90"
android:centerColor="#66000000"
android:centerY="0.3"
android:endColor="#00000000"
android:startColor="#CC000000"
android:type="linear" />
</shape>
并将其作为背景添加到主题中 不要使用旧的操作系统选项,似乎您已经添加了旧的操作系统选项您指的是“minSdkVersion”还是“targetSdkVersion”。。。。我正在Android 6.0设备上测试,google now屏幕截图也取自同一设备。。。我在我的示例应用程序中提到,minSdkVersion为21,targetSdkVersion为23的应用程序的工作方式与以前不同,但我从您的回答中得到了一些很好的提示。如果我注意到了这一点,我可以看到,不是google now应用程序有scrim,而是主屏幕(即状态栏本身有scrim)。我们可以查看状态栏的android源代码,以及scrim是如何应用的。@Jitendar我不认为它直接应用于状态栏(尽管我不会完全排除它)。我认为这不是开源的,它将内容scrim应用于主屏幕
<!-- Base application theme. -->
<style name="TransparentTheme" parent="android:Theme.Holo.Light">
<!-- Customize your theme here. -->
<item name="android:windowBackground">@null</item>
<item name="android:actionBarStyle">@style/ActionBarStyle.Transparent</item>
<item name="android:windowActionBarOverlay">true</item>
</style>
<style name="ActionBarStyle.Transparent" parent="android:Widget.ActionBar">
<item name="android:background">@null</item>
<item name="android:displayOptions">showHome|showTitle</item>
<item name="android:titleTextStyle">@style/ActionBarStyle.Transparent.TitleTextStyle</item>
</style>
<style name="ActionBarStyle.Transparent.TitleTextStyle" parent="@android:style/TextAppearance.Holo.Widget.ActionBar.Title">
<item name="android:textColor">@android:color/white</item>
</style>
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#88000000" />
<gradient
android:angle="90"
android:centerColor="#66000000"
android:centerY="0.3"
android:endColor="#00000000"
android:startColor="#CC000000"
android:type="linear" />
</shape>