2017-06-14 4 views
1

J'essaie de faire un bouton qui a une ombre en utilisant l'élévation avec une image de fond étant ma connexion avec gmail png. Le bouton est contenu dans une disposition relative. L'élévation ne montrera pas ce que j'essaie de faire. J'ai essayé des solutions d'autres questions de forum et aucun n'a fonctionné.Android bouton élévation ombre ne fonctionne pas

Voici mon code pour le bouton

<Button 
    android:id="@+id/google" 
    android:layout_width="270dp" 
    android:layout_height="38dp" 
    android:layout_marginTop="30dp" 
    android:layout_centerHorizontal="true" 
    android:background="@drawable/google" 
    android:elevation="10dp" 
    android:layout_below="@id/slogan"/> 

Le drawable Google est une image .png que j'exporté d'Adobe XD. Quelqu'un pourrait-il me donner un indice sur ce que je fais de mal? Merci.

En outre, je me rends compte que si je définis l'arrière-plan du bouton pour android: couleur/blanc l'ombre apparaît. Donc, je pense que le problème est avec le png drawable? Est-ce que l'altitude ne fonctionne pas avec les images png? Y at-il un travail autour?

+2

https://stackoverflow.com/questions/27080338/android-5-0-androidelevation-works-for-view-but-not-button –

+0

Vous pouvez définir android: stateListAnimator = "@ null" pour le bouton –

+2

@ IntelliJAmiya Comme je l'ai dit, j'ai déjà regardé à travers les forums. Définir stateListAnimator sur null pour le bouton et clipToPadding sur false pour la disposition ne fait toujours pas apparaître l'ombre. Est-ce que je fais quelque chose de mal? –

Répondre

1

Utiliser android: outlineProvider = "limites" - K. Sopheak

Cela fonctionne, merci!

0

essayer ce que j'espère que cela aide, car une autre vue ou la mise en page juste après votre bouton est ombre cacher

android:layout_marginBottom="16dp" 
+0

Quand je place l'arrière-plan à android: couleur/blanc, l'ombre apparaît, donc je ne pense pas que ce soit à cause d'une autre vue le cachant –

0

Puisque vous utilisez une image, remplacez l'étiquette <Button> avec celle d'un <ImageButton>. Donc, votre code de contournement serait:

<ImageButton 
     android:id="@+id/google" 
     android:layout_width="270dp" 
     android:layout_height="38dp" 
     android:layout_marginTop="30dp" 
     android:layout_centerHorizontal="true" 
     android:src="@drawable/google" 
     android:elevation="10dp" 
     android:layout_below="@id/slogan"/> 

Prenez note que l'attribut android:src est utilisé ici plutôt que l'attribut android:background.

Celui-ci a fonctionné pour moi!