I'd like to display a photo on an Android Activity screen with doing gradual and continual fade-in from pale monotone sepia to the final full color. I know how to do it on a Java Image/BufferedImage for the Graphic object but unfortunately I know nothing for the Android programming environment. Could anyone help?
4 Answers
Hi Hiroshi you can do this for the fade in:
  ImageView myImageView= (ImageView)findViewById(R.id.myImageView);
  Animation myFadeInAnimation = AnimationUtils.loadAnimation(this, R.anim.fadein);
  myImageView.startAnimation(myFadeInAnimation); //Set animation to your ImageView
and inside your res\anim\ folder the animation file 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>
but for the gradual fade in from sepia to the full color, you must use TransitionDrawable
 
    
    - 7,978
- 3
- 36
- 36
 
    
    - 124,308
- 23
- 334
- 268
- 
                    4Works just fine. You probably won't need the `android:repeatCount="infinite"`, though... – Bojan Radivojevic Jun 29 '12 at 16:42
I wanted an image to fade (and then disappear) once clicked from full opacity to 0. Here is how I did it:
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);
 
    
    - 7,785
- 2
- 34
- 46
One method for this would be to use the animation set. See here;
http://developer.android.com/guide/topics/resources/available-resources.html#animation
Some example code I have done (infinite loop fade out in this example) ;
In the animation .xml file;
<alpha android:fromAlpha="1.0" 
       android:toAlpha="0.3"  
       android:duration="7000"
       android:repeatMode="restart"
       android:repeatCount="infinite"/>
In the java file;
 ImageView introanim = (ImageView) findViewById(R.id.introanim);
    Animation StoryAnimation = AnimationUtils.loadAnimation(this, R.anim.intro_anim);
    introanim.startAnimation(StoryAnimation);
You could fade from your sepia background/picture to whatever you want...
 
    
    - 7,566
- 19
- 63
- 90
 
    
    - 115
- 7
Another much simpler solution is to just put a stub onClick method to your ImageView you want to fade, then inside the method you add this:
view.animate().alpha(0).setDuration(2000);      
/* Alpha attribute translates to opacity. 
A solid View means that the alpha attribute is set to 1 (which is the 
default) and completely invisible is 0 */
 
    