10

Google Nowと同様のステータスバーとナビゲーションバーのグラデーションを作成しようとしています。ステータスバーとナビゲーションバーのGoogle Nowグラデーション/シャドウ

イメージ参照:

:長方形の面積は、私は以下の行動に

イメージ参照を取得し、Androidのマシュマロに、以下のオプションを試した後enter image description here

以下

として

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

を示しました

enter image description here

誰も私にこれらの両方のグラデーションを取得する方法を教えてもらえますか?
これはグラデーションですか、それとも影ですか?

+0

が古いOSオプションを使用して行っていない私のために働いた、あなたが古いOSオプション –

+0

を追加する必要がありそうです、あなたは「minSdkVersionが」または「targetSdkVersionを参照しています'?? ....私はAndroid 6.0のデバイスでテストしている、Googleのスクリーンショットは同じデバイスからも取られている...私は、21としてminSdkVersionと23とtargetSdkVersionで私のサンプルアプリケーションで述べている –

答えて

4

scrimとして使用されている勾配です。この効果を得るには、最初に行う必要があるのは、ステータスバーとナビゲーションバーの半透明のアンダーレイを削除することです。 Another answer下位プラットフォームのデバイスでこれを行う方法の詳細。しかし、Androidのロリポップと高い上、あなたがこれを行うことができ、単純に2つのスタイルを設定することにより、透明に属性:あなたは次に

<shape xmlns:android="http://schemas.android.com/apk/res/android"> 

    <gradient android:type="linear" 
     android:angle="270" 
     android:centerY="0.3" 
     android:startColor="#66000000" 
     android:centerColor="#33000000" 
     android:endColor="#00000000"/> 

</shape> 

:次に

<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"属性を設定することができます

<View 
    android:layout_width="match_parent" 
    android:layout_height="72dp" 
    android:background="@drawable/scrim"/> 

:ちょうどあなたのレイアウトでViewの背景として、これを設定することができますeスクリーン。

+0

私はそれに正しく気づいたら、私はスクリムを持っているが、ホーム画面(すなわちステータスバー自体がスクリムを持っている)のGoogleのアプリではないことが分かりました。ステータスバーのアンドロイドソースコード、スクリムの適用方法を確認することができます。 –

+0

@Jitendar私はそれがステータスバーに直接(私はそれを完全に排除しないけれども)適用されるとは思わない。私は[Google Nowランチャー](https://play.google.com/store/apps/details?id=com.google.android。ランチャー&hl = en)は、オープンソースではないが、コンテンツスクリムをホーム画面に適用する。 – Bryan

1

まず完全に透​​明アクションのステータスバーを作るためにスタイルを追加:

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

と背景としてこれを追加あなたのテーマで。

+0

以前と同じように動作しなかったが、私はあなたの答えから間違いなく良いヒントを得る。 – Dhruv

関連する問題