Effet d'entraînement sur la forme drawable
Essayer de faire quelque chose de vraiment simple d'ici et d'avoir regardé un tas de ressources, mais en vain. Je suis en train d'essayer d'obtenir l'effet d'entraînement sur un bouton qui utilise un drawable
de fond de type de shape drawable
. Les fichiers concernés:
background_button:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<stroke
android:width="1px"
android:color="#80ffffff" />
<solid android:color="@android:color/transparent" />
</shape>
ripple.xml dans le drawable-v21
dossier:
<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="?attr/colorControlHighlight">
<item android:drawable="@drawable/background_button"/>
</ripple>
Button.xml:
<Button
android:id="@+id/login_button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:layout_weight="1"
android:paddingTop="10dp"
android:paddingBottom="10dp"
android:background="@drawable/ripple"
/>
Quel est le problème ici.
Merci!
OriginalL'auteur user2511882 | 2015-12-24
Vous devez vous connecter pour publier un commentaire.
Mon conseil serait de ne pas utiliser
<ripple
tag. J'ai 2 raisons: il n'est pas facile à faire exactement ce que vous voulez et vous avez à 2 différents.xml
fichiers pour chaque arrière-plan. Je n'aime pas avoirdrawable-v21
dossier.Ma solution est d'envelopper votre
Button
avecFrameLayout
et l'utilisationandroid:foreground
attribut. De cette façon, vous pouvez avoir tout ce de fond que vous voulez et vous pouvez garder l'effet d'entraînement.Avis que j'ai déménagé tous les attributs et l'id de
FrameLayout
. Vous devez définironClickListener
àFrameLayout
au lieu de laButton
.Btw,
?attr/selectableItemBackground
est grande. Utiliser autant que possible. Il remplace bleu Holo de couleur avec du gris pour les vieux appareils à partir d'Android 4.0 à 4.3.C'est ce que je suis en train de faire pour un long temps. Il assure la cohérence de l'Api de niveau 7 à 23. J'espère que cela fonctionnera pour vous
Malheureusement., cela ne fonctionne pas.
Pouvez-vous envoyer ce que vous essayer? Il devrait fonctionner.
Pourquoi ne pas tout simplement mettre au premier plan de l'élément sur le bouton directement ?
OriginalL'auteur tasomaniac
De l'essayer.
ripple_effect.xml
button.xml
construire.gradle
Cela fonctionne! Et, bien sûr, vous devez vous rappeler que l'ondulation de lui-même utilise la forme dessiné comme un masque. Donc, pour obtenir à la fois de l'ondulation ET de la forme affichée, on peut aller dans l'arrière-plan et l'autre en premier plan des attributs.
Cela a fonctionné pour moi quand j'ai enlevé
android:id="@android:id/mask"
deitem
OriginalL'auteur Quang Doan
qui fonctionne pour moi
drawable/rect.xml
et ondulations
drawable/rip.xml
et pour votre bouton
espérons que cette aide !!!
OriginalL'auteur Mohamed Hocine
Ce travail pour moi..
Le point est la section
@drawable/button_green_background
pour le fond et pour le masque.OriginalL'auteur latifalbr
J'ai eu la tâche similaire. Laissez-moi vous expliquer comment je le résoudre. C'sorties cercle imageViews avec l'ombre et l'effet d'entraînement ne va au-delà du cercle des limites.
Le suivant fournit de l'effet d'entraînement:
Le suivant fournit cercle imageView.
Le texte qui suit fournit de l'ombre:
Un autre problème que vous pourriez être probablement faire face est l'effet d'entraînement sort du cercle des limites. Afin de résoudre, utiliser les fichiers suivants ripple_effect.xml)
Si vous n'utilisez pas les éléments suivants :
effet d'entraînement va au-delà du cercle des limites et ce n'est pas agréable. Soyez prudent et prend, il est facile.
OriginalL'auteur oiyio
Cela aidera
Voir pour plus de cette
OriginalL'auteur Aditya Vyas-Lakhan
Solution plus simple à utiliser ce drawable-xml en tant que valeur de la propriété "android:background" du Bouton:
drawable/bkg_ripple.xml:
button.xml:
OriginalL'auteur Gregory