Je me demande comment je devrais créer un effet Pulse en utilisant l'animation du framework neuf olad androïdes.
Pour mieux comprendre, disons que vous avez une ImageView et que vous voulez avoir un effet "Pulse", comme rendre l'image un peu plus petite, puis revenir à sa taille d'origine, la mise à l'échelle sera centrée.
J'utilise neuf androïdes olad pour la compatibilité descendante.
Toute autre option est la bienvenue.
Je vous remercie.
R.anim.Pulse
:
<scale xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:duration="1000"
Android:fromXScale="1"
Android:fromYScale="1"
Android:pivotX="50%"
Android:pivotY="50%"
Android:repeatCount="1"
Android:repeatMode="reverse"
Android:toXScale="0.5"
Android:toYScale="0.5" />
ImageView imageView = (ImageView) findViewById(R.id.image);
Animation Pulse = AnimationUtils.loadAnimation(this, R.anim.Pulse);
imageView.startAnimation(Pulse);
heart_Pulse.xml place heart_Pulse.xml dans le dossier res/anim Ajouter Android: interpolateur
puis utilisez dans votre activité comme ci-dessous
<?xml version="1.0" encoding="utf-8"?>
<scale xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:interpolator="@Android:anim/accelerate_decelerate_interpolator"
Android:fromXScale="1"
Android:fromYScale="1"
Android:pivotX="50%"
Android:pivotY="50%"
Android:toXScale="0.5"
Android:toYScale="0.5"
Android:duration="1000"
Android:repeatCount="infinite"
Android:repeatMode="reverse"/>
ImageView imageView =(ImageView)findViewById(R.id.imageView);
Animation Pulse = AnimationUtils.loadAnimation(this, R.anim.heart_Pulse);
imageView.startAnimation(Pulse);
pour utiliser la solution @ Matthias Robbers directement à partir du XML, vous pouvez faire ce qui suit: créer 2 fichiers:
1- Pulse.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:Android="http://schemas.Android.com/apk/res/Android">
<scale xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:fromXScale="1"
Android:fromYScale="1"
Android:pivotX="50%"
Android:pivotY="50%"
Android:toXScale="0.8"
Android:toYScale="0.8"
Android:duration="500"
Android:repeatCount="infinite"
Android:repeatMode="reverse"/>
</set>
2- Pulse_layout_animation.xml
<?xml version="1.0" encoding="utf-8"?>
<layoutAnimation xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:animation="@anim/Pulse">
</layoutAnimation>
puis dans votre fichier xml de mise en page, ajoutez simplement cette animation à n'importe quelle vue dont vous avez besoin, par exemple:
<ImageView
Android:layout_width="55dp"
Android:layout_height="55dp"
Android:src="@drawable/heart"
Android:layout_centerHorizontal="true"
Android:layout_centerVertical="true"
Android:layoutAnimation="@anim/Pulse_layout_animation" />