une - démarrer avec android studio french edition pdf




ImageView sera réinitialisé à l'état d'origine après la rotation? (2)

C'est la manière normale lorsque vous utilisez une animation sur Android.

Vous pouvez:

  • démarrer une nouvelle animation sans durée et répéter la propriété sur "infini", et vous faites pivoter votre image à l'intérieur
  • Mettez la valeur de rotation manuellement à la fin de l'animation (mais vous ne pouvez pas le faire sans animation spécifique ci-dessous Android 3.0 si je ne me trompe pas).

Dupliquer possible:
Android: réinitialisation de la position d'animation après achèvement

J'utilise RotateAnimation pour faire pivoter un ImageView . Le code est simple:

this.button.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        Animation ani = new RotateAnimation(
                0, /* from degree*/
                30, /* to degree */
                Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
        ani.setDuration(1000);
        imageView.startAnimation(ani);
    }
});

Vous pouvez voir que je veux que l'image tourne de 30 degrés.

Cela fonctionne, mais lorsque la rotation est terminée, l'image revient à l'état d'origine, la même position et le même degré avant la rotation. Je veux fixer ImageView à la dernière position d'animation c'est-à-dire vouloir fixer l'image inclinée de 30 degrés. Comment le réparer?


Je viens de trouver une solution:

ani.setFillAfter(true);

Ça marche :)





rotation