-
-
Save benvd/5683818 to your computer and use it in GitHub Desktop.
import android.content.Context; | |
import android.graphics.Bitmap; | |
import android.graphics.drawable.*; | |
import android.util.AttributeSet; | |
import com.android.volley.toolbox.NetworkImageView; | |
public class FadeInNetworkImageView extends NetworkImageView { | |
private static final int FADE_IN_TIME_MS = 250; | |
public FadeInNetworkImageView(Context context) { | |
super(context); | |
} | |
public FadeInNetworkImageView(Context context, AttributeSet attrs) { | |
super(context, attrs); | |
} | |
public FadeInNetworkImageView(Context context, AttributeSet attrs, int defStyle) { | |
super(context, attrs, defStyle); | |
} | |
@Override | |
public void setImageBitmap(Bitmap bm) { | |
TransitionDrawable td = new TransitionDrawable(new Drawable[]{ | |
new ColorDrawable(android.R.color.transparent), | |
new BitmapDrawable(getContext().getResources(), bm) | |
}); | |
setImageDrawable(td); | |
td.startTransition(FADE_IN_TIME_MS); | |
} | |
} |
Thanks a lot for the gist. It's succinct and works perfectly!
Thanks for the example code, but would it not be more efficient to use an AlphaAnimation on the ImageView instead? Like this: https://github.com/nostra13/Android-Universal-Image-Loader/blob/master/library/src/com/nostra13/universalimageloader/core/display/FadeInBitmapDisplayer.java
Just to note - this adds an extra layer of overdraw. You can use:
td.setCrossFadeEnabled(true);
to remove this extra overdraw.
thanks !
Any way to pinchzoom the network image view???
Creating a new array, ColorDrawable, and BitmapDrawable is very inefficient I would suggest to declare them as private variables and reuse them instead.
For starters this will eliminate one "new".
private static ColorDrawable cd = new ColorDrawable(android.R.color.transparent);
and then
TransitionDrawable td = new TransitionDrawable(new Drawable[]{
cd,
new BitmapDrawable(getContext().getResources(), bm)
});
ColorDrawable can be replaced by getDrawable() if setDefaultImageResId() was called before.
Very useful! Is possible to remove the effect once that an image has been viewed? In a list of images the effect is annoying when scroll down and scroll up
Thank you bro.. this how I like sample code.. clear and working!