2017-01-16 5 views
1

alle. Ist es möglich, Navigation View transparent zu machen? Ich habe ein benutzerdefiniertes Layout und versuche 50% transparenten Hintergrund für dieses Layout, Navigation View oder Drawer Layout.Android Navigation Transparenz anzeigen

android:background="#80000000" 

aber es gibt nicht erwartetes Ergebnis.

Hat jemand versucht, dies zu tun? Ich würde mich über Hilfe freuen.

Antwort

5

können Sie versuchen:

navigationView.getBackground().setAlpha(122); 

Hier können Sie die Opazität zwischen 0 (transparent) und kann bis 255 (vollständig undurchsichtig).

Sie können auch den XML-Wert alpha verwenden, der doppelte Werte annimmt.

Der Bereich ist von 0f bis 1f (einschließlich), 0f transparent ist und 1f opak:

android:alpha="0.0" unsichtbar

android:alpha="0.5" see-through

android:alpha="1.0" voll sichtbar

1

zu machen transparent für die navigation, bitte versuchen sie es unter code

final Window window = getWindow(); 
    ObjectAnimator animator = ObjectAnimator.ofInt(window, 
      "navigationBarColor", window.getNavigationBarColor(), Color.TRANSPARENT); 
    animator.setEvaluator(new ArgbEvaluator()); 
    animator.setDuration(0); 
    animator.start(); 
+0

'#getNavigationBarColor()' erfordert API 21 –

4

Wenn Sie Transparenz mit einer Farbe dieses versuchen ..

NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view); 
View headerView = navigationView.getHeaderView(0); 
------ 
// you can even change only one from above to and keep the other one normally 
     navigationView.getBackground().setColorFilter(0x80000000, PorterDuff.Mode.MULTIPLY); 
     headerView.getBackground().setColorFilter(0x80000000, PorterDuff.Mode.MULTIPLY); 

Ausgang:

enter image description hereenter image description here

Wenn Sie mehr deatals benötigen, um die Farbcodes Sie können meine Antwort gelten überprüfen here


Oder wenn Sie nur alpha Verwendung navigationView.getBackground().setAlpha(intNumberTill256);

ps Nav headder dunkle Farbe zurückzuführen ist, die eingestellt werden soll es Hintergrundfarbe ist, dass ich in seiner XML gegeben haben

+0

Groß , +1 ..! Können Sie als Top-User in * Android * -Tag auch auf diese kurze Frage antworten? Sollte ich eine 'public static void main() {}' -Methode für jede ** Klasse ** oder ** Datei ** oder ** Projekt ** haben? – stack

+2

@stack gut ich würde es so sagen, zuerst, warum willst du eine Methode so? Dann, wenn Sie denken, dass sollte der Weg sein, fiest Methode einer Klasse in android..No..In ** Core Java ** -Programmen zu starten, brauchen wir eine 'main()' Methode, weil während der Ausführung des Byte-Codes die JVM wird Suchen Sie nach der 'main()' Methode in der Klasse und starten Sie die Ausführung. Im Fall von ** Android ** ist in jedem Paket ein Manifest enthalten. Der Startpunkt wird in diesem Manifest angegeben. Er startet die Ausführung der Anwendung von der angegebenen 'onCreate()' Methode, so dass keine 'main()' Methode benötigt wird. –

+2

@stack über Android Life Cycle lesen // Wenn Sie Haben Sie irgendwelche Zweifel, einen Kommentar einen Kommentar http: // stackoverflow.com/questions/8515936/android-activity-life-cycle-was-sind-all-diese-methoden-für –