2017-01-16 2 views
1

tout le monde. Est-il possible de rendre transparent Navigation View? J'ai une mise en page personnalisée et essayez de définir 50% d'arrière-plan transparent pour cette mise en page, Navigation View ou Drawer Layout.Android Navigation Voir la transparence

android:background="#80000000" 

mais cela ne donne pas le résultat escompté.

Quelqu'un at-il essayé de le faire? J'apprécierais l'aide.

Répondre

5

vous pouvez essayer:

navigationView.getBackground().setAlpha(122); 

Ici vous pouvez définir l'opacité entre 0 (entièrement transparent) à 255 (complètement opaque).

Vous pouvez également utiliser la valeur XML alpha qui prend des valeurs doubles.

La plage est de 0f à 1f (inclus), 0f étant transparente et 1f étant opaque:

android:alpha="0.0" invisible

android:alpha="0.5" see-through

android:alpha="1.0" complète visible

1

Pour faire transparent pour la navigation, s'il vous plaît essayez ci-dessous 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()' nécessite API 21 –

4

Si vous voulez la transparence avec une couleur essayer ce ..

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); 

Sortie:

enter image description hereenter image description here

Si vous avez besoin de plus deatals dont les codes couleur que vous pouvez appliquer vérifier ma réponse here


Ou si vous souhaitez définir des alpha utilisation navigationView.getBackground().setAlpha(intNumberTill256);

ps Nav headder couleur foncée est due à sa couleur d'arrière-plan que j'ai donné dans son XML

+0

Grande , +1 ..! En tant qu'utilisateur principal de la balise * Android *, pouvez-vous répondre à cette courte question? Dois-je avoir une méthode 'public static void main() {}' pour chaque ** classe ** ou ** fichier ** ou ** projet **? – stack

+2

@stack je dirais comme ça, d'abord pourquoi vous voulez une méthode comme ça? Ensuite, si vous pensez que cela devrait être le moyen de démarrer la méthode fiest d'une classe dans les programmes android..No..In ** core Java **, nous avons besoin d'une méthode 'main()', car pendant l'exécution du code byte, la JVM recherche la méthode 'main()' dans la classe et commence à y exécuter..Dans le cas de ** Android **, un manifeste est inclus dans chaque paquet. Le point de lancement est spécifié dans ce manifeste.Il commence l'exécution de l'application à partir de la classe spécifiée 'onCreate()' méthode, donc il n'y a pas besoin d'une méthode 'main()' –

+2

@stack lire sur le cycle de vie android // Si vous avoir un doute poster un commentaire une demande http: // stackoverflow.com/questions/8515936/android-activity-life-cycle-ce-sont-toutes-ces-méthodes-pour –