Alphaing un travail dessinable bien comme ceci:
if(mAlphaAnimation == null){
mAlphaAnimation = ObjectAnimator.ofFloat(this, "alpha", 0.0f,1.0f).setDuration(TARGET_ANIM_ALPHA_DURATION);
mAlphaAnimation.setInterpolator(new AccelerateDecelerateInterpolator());
mAlphaAnimation.setStartDelay(TARGET_ANIM_ALPHA_DELAY_BASE*power);
mAlphaAnimation.setRepeatCount(ValueAnimator.INFINITE);
mAlphaAnimation.setRepeatMode(ValueAnimator.REVERSE);
mAlphaAnimation.addUpdateListener(this);
}
Mais si je veux faire pivoter un dessinable comme ci-dessous, ça ne marche pas.
private void createRotateAnim(float fromDegress,float toDegress,int duration){
if(mRotateAnimation == null){
mRotateAnimation = ObjectAnimator.ofFloat(this, "rotation",fromDegress,toDegress).setDuration(duration);
mRotateAnimation.setStartDelay(100);
mRotateAnimation.setInterpolator(new AccelerateInterpolator());
mRotateAnimation.addUpdateListener(this);
}
}
Tout le monde peut m'aider à résoudre ce problème, ou c'est une autre façon de créer une animation de dessin rotatif.
Je suis désolé pour mon pauvre anglais.
Essayez cette animation de rotation simple appliquée à une image.
ImageView imageview = (ImageView)findViewById(R.id.myimage);
RotateAnimation rotate = new RotateAnimation(180, 360, Animation.RELATIVE_TO_SELF,
0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
rotate.setDuration(500);
imageview.startAnimation(rotate);
Cette réponse est juste pour une question, il est vrai que la zone cliquable sera différente de la position actuelle de View
. Veuillez vérifier cette question pour rendre la zone cliquable correcte. Le bouton n'est pas cliquable après TranslateAnimation
Essayez plutôt avec ObjectAnimator
.
ImageView imageview = (ImageView)findViewById(R.id.image);
ObjectAnimator imageViewObjectAnimator = ObjectAnimator.ofFloat(imageview ,
"rotation", 0f, 360f);
imageViewObjectAnimator.setDuration(1000); // miliseconds
imageViewObjectAnimator.start();
MODIFIER Puisque cette question attire l'attention, permettez-moi d'expliquer pourquoi utiliser ObjectAnimator
au lieu d'une autre transition animateurs
La chose à propos de l'utilisation de ObjectAnimator
est qu'elle déplace à la fois la zone visible et la zone cliquable de l'élément, si vous utilisez une autre méthode d'animation, par exemple Transition Animation ou d'autres animateurs, et disons si vous souhaitez déplacer le Button
du bas à gauche de l'écran vers le haut à gauche, cela ne fera que déplacer la zone visible mais pas le Button
lui-même, la zone cliquable sera toujours à la position précédente, dans ce cas la zone cliquable sera toujours en bas à gauche au lieu du coin supérieur gauche où vous avez déplacé le bouton.
Si vous faites de même avec ObjectAnimator
, la zone visible et la zone cliquable déplaceront l'emplacement souhaité.