43 votes

Comment faire un fadein d'une image sur un écran d'activité Android?

J'aimerais afficher une photo sur un écran d'activité Android avec un fondu progressif et continu du sépia monotone pâle à la couleur finale. Je sais comment le faire sur une image Java Image / BufferedImage pour l'objet Graphic, mais malheureusement, je ne connais rien à l'environnement de programmation Android. Quelqu'un pourrait-il aider?

82voto

Elenasys Points 23268

Bonjour Hiroshi, vous pouvez le faire pour le fondu enchaîné:

   ImageView myImageView= (ImageView)findViewById(R.id.myImageView);
  Animation myFadeInAnimation = AnimationUtils.loadAnimation(this, R.anim.fadein);
  myImageView.startAnimation(myFadeInAnimation); //Set animation to your ImageView
 

et dans votre dossier res \ anim \ le fichier d'animation fadein.xml

 <?xml version="1.0" encoding="UTF-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
        <alpha android:fromAlpha="0.0" android:toAlpha="1.0" android:interpolator="@android:anim/accelerate_interpolator" 
android:duration="3000" android:repeatCount="infinite"/>
</set>
 

mais pour la transition progressive de sépia à la couleur complète, vous devez utiliser TransitionDrawable

52voto

Ricky Points 3466

Je voulais qu'une image disparaisse (puis disparaisse) une fois que l'opacité totale a été cliquée à 0. Voici comment je l'ai faite:

 Animation a = new AlphaAnimation(1.00f, 0.00f);

a.setDuration(1000);
a.setAnimationListener(new AnimationListener() {

    public void onAnimationStart(Animation animation) {
        // TODO Auto-generated method stub

    }

    public void onAnimationRepeat(Animation animation) {
        // TODO Auto-generated method stub

    }

    public void onAnimationEnd(Animation animation) {
        yourView.setVisibility(View.GONE);

    }
});

yourView.startAnimation(a);
 

7voto

Mike Droid Points 80

Une autre méthode serait d'utiliser l'animation de jeu. Voir ici;

http://developer.android.com/guide/topics/resources/available-resources.html#animation

Un exemple de code que j'ai fait (boucle infinie fondu dans cet exemple) ;

Dans l'animation .fichier xml;

<alpha android:fromAlpha="1.0" 
       android:toAlpha="0.3"  
       android:duration="7000"
       android:repeatMode="restart"
       android:repeatCount="infinite"/>

Dans le fichier java;

 ImageView introanim = (ImageView) findViewById(R.id.introanim);
    Animation StoryAnimation = AnimationUtils.loadAnimation(this, R.anim.intro_anim);
    introanim.startAnimation(StoryAnimation);

Vous pourriez fondu à partir de votre fond sépia/image de ce que vous voulez...

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X