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?
Réponses
Trop de publicités?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
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);
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...