Android imageview onClick animation

Je suppose que c'est une question étrange mais j'ai essayé de définir onClicklistener sur un ImageView et cela a fonctionné. Mais le problème est que l'utilisateur ne peut pas détecter le clic. Je veux dire que si certains d'entre vous ont travaillé sur d'autres environnements mobiles (comme apple iphone), nous cliquons sur une Image dans d'autres environnements, cela donne un effet sur l'image afin que l'utilisateur puisse comprendre que l'image a été cliquée.

J'ai essayé de définir alpha en utilisant la méthode "setalpha" mais cela ne fonctionne pas. Bien la même chose fonctionne bien sur l'implémentation onFocusListener. Peut some1 Suggérer une autre façon de modifier l'image sur le clic...

Je suis nouveau sur android donc havent appris les nuances de l'animation simple aussi... s'il y a une animation simple que je peux utiliser pour la même chose, alors plzz plzzz faites-le moi savoir...

Merci...

23
demandé sur JaVadid 2010-02-16 07:57:17

4 réponses

   <?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">

<alpha
android:fromAlpha = "1.0"
android:toAlpha = "0.5"
android:duration = "300">
</alpha>
<scale
android:fromXScale = "1"
android:toXScale = "0.9" 
android:fromYScale = "1"
android:toYScale = "0.9" 
android:pivotX="50%"
android:pivotY="50%" 
android:duration = "50">
</scale>
</set>

Je ne sais pas si c'est la bonne méthode mais définir une animation comme mentionné a fait l'affaire. Maintenant nous avons juste à donner

public void onClick(View v) {
v.startAnimation(AnimationUtils.loadAnimation(Context, R.anim.image_click));
//Your other coding if present
}

Dans la méthode OnClick et le changement sera visible...

71
répondu JaVadid 2011-12-02 08:19:50

Vous voulez utiliser un drawable qui contient des images différentes pour les différents états que vous souhaitez prendre en charge. Voici un exemple:

<?xml version="1.0" encoding="utf-8"?>    
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" android:drawable="@drawable/img_pressed" />
    <item android:state_focused="true" android:drawable="@drawable/img_focused" />
    <item android:drawable="@drawable/img_at_rest" />
</selector>

Nommez ce fichier img.xml ou quelque chose et placez-le dans votre répertoire drawable, puis définissez l'image de votre ImageView sur img.XML. @drawable/img_at_rest est l'image de l'original que vous essayez d'utiliser, tandis que @drawable/img_pressed et @drawable/img_focused sont les images à utiliser pour leurs états respectifs. Vous pouvez également utiliser des couleurs solides au lieu d'images si cela convient à votre cas d'utilisation.

8
répondu emmby 2010-02-16 05:37:47

Anim / anim_item.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
  <alpha
    android:fromAlpha="0.0"
    android:toAlpha="1."
    android:duration="1000">
  </alpha>
</set>

Et ajouter:

myView.startAnimation(AnimationUtils.loadAnimation(context, R.anim.anim_item));
1
répondu Pierry 2016-06-28 19:39:18

Vous ne savez pas si cela fonctionne, mais avez-vous essayé setSelected() http://developer.android.com/reference/android/widget/ImageView.html#setSelected(boolean)

0
répondu Patrick Kafka 2010-02-16 05:03:44