web-dev-qa-db-fra.com

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

Je voudrais 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 un Java Image/BufferedImage pour l'objet Graphic mais malheureusement je ne sais rien pour l'environnement de programmation Android. Quelqu'un pourrait-il aider?

39
Hiroshi Iwatani

Salut Hiroshi, vous pouvez le faire pour le fondu en entrée:

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

et à l'intérieur de 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"/>
</set>

mais pour le fondu progressif du sépia à la pleine couleur, vous devez utiliser TransitionDrawable

77
Jorgesys

Je voulais qu'une image se fane (puis disparaisse) une fois cliquée de l'opacité totale à 0. Voici comment je l'ai fait:

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);
52
Ricky

Une méthode serait d'utiliser le jeu d'animation. Vois ici;

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

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

Dans le fichier d'animation .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 pouvez passer de votre fond/image sépia à ce que vous voulez ...

6
Mike Droid