web-dev-qa-db-fra.com

Comment puis-je faire vibrer l'animation pour ImageView

Je n'ai aucune idée de cette animation.

Comment puis-je le faire via XML comme ça? Ou une autre solution?

<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:Android="http://schemas.Android.com/apk/res/Android" 
    Android:interpolator="@Android:anim/accelerate_decelerate_interpolator" 
    Android:fillAfter="true"> 
    ......
</set>

Merci pour votre aide

18
Nam Vu

Vous pouvez passer à la caisse ci-dessous pour savoir comment fonctionne l'animation vibrante 

1) Animation tremblante sous Android
2) Animation de vibration

J'espère que cela vous aidera.

Merci

14
GrIsHu

Ce code secoue une vue dans le sens horizontal

shake.xml

<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:duration="1000"
    Android:fromXDelta="0"
    Android:interpolator="@anim/cycle_5"
    Android:toXDelta="10" />

cycle_5.xml

<?xml version="1.0" encoding="utf-8"?>
<cycleInterpolator xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:cycles="5" />

Méthode pour secouer ImageView

public void onShakeImage() {    
   Animation shake;
   shake = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.shake);

   ImageView image;
   image = (ImageView) findViewById(R.id.image_view);

   image.startAnimation(shake); // starts animation
}
11

1) vibrez ou 2) secouez .__ (en utilisant l’animation de propriété), le code suivant fonctionne pour moi.

 ObjectAnimator rotate = ObjectAnimator.ofFloat(animateView, "rotation", 0f, 20f, 0f, -20f, 0f); // rotate o degree then 20 degree and so on for one loop of rotation.
// animateView (View object) 
        rotate.setRepeatCount(20); // repeat the loop 20 times
        rotate.setDuration(100); // animation play time 100 ms 
        rotate.start();
4
Geet Thakur

Créer un fichier d'animation dans le répertoire anim:

<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:duration="200"
    Android:fromDegrees="-10"
    Android:pivotX="50%"
    Android:pivotY="50%"
    Android:repeatCount="infinite"
    Android:repeatMode="reverse"
    Android:toDegrees="10" />



Animation shake = AnimationUtils.loadAnimation(this, R.anim.shake);
your_view.startAnimation(shake);
1
Makvin

Créer shake.xml dans le répertoire anim

<set xmlns:Android="http://schemas.Android.com/apk/res/Android">
<rotate
    Android:duration="70"
    Android:fromDegrees="0"
    Android:interpolator="@Android:anim/linear_interpolator"
    Android:pivotX="50%"
    Android:pivotY="50%"
    Android:repeatCount="5"
    Android:repeatMode="reverse"
    Android:toDegrees="0" />
<translate
    Android:duration="70"
    Android:fromXDelta="40"
    Android:interpolator="@Android:anim/linear_interpolator"
    Android:repeatCount="5"
    Android:repeatMode="reverse"
    Android:toXDelta="-40" />

dans votre fichier Java, ajoutez la méthode ci-dessous

public void animateView(View view){
    Animation shake = AnimationUtils.loadAnimation(getActivity(), R.anim.shake);
    view.startAnimation(shake);
}

et passez votre vue à l'intérieur de la méthode pour l'animation

animateView(yourView);
0
Mehul Solanki