我想淡入动画应用到的ImageView创建图像,这是从URL加载的,当下载完成后淡入的效果。
我知道如何从URL中下载图像的ImageView的,像这样的回答 ,我知道如何应用淡入动画的ImageView的喜欢这里 。
这种尝试
Drawable d = ImageUtils.fetchDrawable("the url");
imageView.setImageDrawable(d);
imageView.startAnimation(fadeInAnimation);
结果在眨眼的效果(参见,未看到,淡入看)。 扭转了最后两行的顺序也导致闪烁。
我GOOGLE和SO搜索在回调/监听器的形式的解决方案 - 是这样的:
imageView.setOnLoadCompleteListener...
中注册的ImageView加载完整事件,但我还没有发现沿着这些线路的东西。
我会为任何指针就如何实现这一效果的解决方案表示感谢。
设置ImageView
知名度, INVISIBLE
或GONE
设置setAnimationListener
的动画。 当onAnimationEnd
改变的可视性ImageView
。
fadeInAnimation.setAnimationListener(new AnimationListener() {
@Override
public void onAnimationEnd(Animation arg0) {
// let make your image visible
}
@Override
public void onAnimationRepeat(Animation animation) {}
@Override
public void onAnimationStart(Animation animation) {}
});
您可以使用:TransitionDrawable,简单的代码如下:
// Transition drawable with a transparent drwabale and the final bitmap
final TransitionDrawable td =
new TransitionDrawable(new Drawable[] {
new ColorDrawable(Color.TRANSPARENT),
new BitmapDrawable(mResources, bitmap)
});
// Set background to loading bitmap
imageView.setBackgroundDrawable(
new BitmapDrawable(mResources, mLoadingBitmap));
imageView.setImageDrawable(td);
td.startTransition(FADE_IN_TIME);