android – 仅为ImageView的“src”alpha属性设置动画,而不是整个视图

我有一个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);
上一篇:兼容的问题,后续更新


下一篇:JavaScript的运动原理2