web-dev-qa-db-fra.com

Comment créer un effet Pulse ImageView en utilisant neuf anciennes animations androïdes

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.

31
George Taskos

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);
99
Matthias Robbers

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);
13
Chirag Darji

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" />
3
Fareed Alnamrouti