我有一个ImageView,最初是空的.其背景设置为灰色:
<ImageView
android:background="#333" />
我从互联网获取其位图后,我想将其设置为src属性,但优雅地淡出它.我见过的动画示例就是这样的:
// fade_in.xml
<set xmlns:android="http://schemas.android.com/apk/res/android" >
<alpha
android:duration="2000"
android:fromAlpha="0.0"
android:interpolator="@android:anim/accelerate_interpolator"
android:toAlpha="1.0" />
</set>
但这是动画整个ImageView的不透明度.它具有在淡入之前首先隐藏ImageView的效果,因此您在动画开始时看到一个小弹出窗口,首先设置为alpha = 0.
有没有办法为“src”属性的不透明度而不是整个ImageView设置动画?
谢谢
解决方法:
imageView的源图像上的动画很棘手,并且在大多数情况下涉及将imageView包装到某个ViewGroup中,但如果您想要做的就是设置其alpha(淡入/淡出)动画,则使用TransitionDrawable非常容易:
TransitionDrawable transitionDrawable = new TransitionDrawable(new Drawable[]{
new ColorDrawable(Color.TRANSPARENT),
getResources().getDrawable(R.drawable.my_image)
});
imageview.setImageDrawable(transitionDrawable);
transitionDrawable.startTransition(300);