我有一个图像,一旦页面加载就会淡入。但是,不保留动画中设置的图像的最终alpha。我的图像有以下(简单)xml:
<ImageView
android:id="@+id/myImage"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:cropToPadding="true"
android:scaleType="centerCrop"
android:background="#ffffff" />
然后我将动画文件淡入图像:
<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha
android:fromAlpha="0.0"
android:toAlpha="0.6"
android:duration="2000"/>
</set>
然后最后加载图像的代码:
body =(ImageView)findViewById(R.id.myImage);
body.setBackgroundDrawable(new BitmapDrawable(this.getResources(), background));
Animation myFadeInAnimation = AnimationUtils.loadAnimation(this, R.anim.fadein_bg);
body.startAnimation(myFadeInAnimation);
那么在动画完成后如何才能获得图像的最终alpha值?
由于
答案 0 :(得分:4)
尝试在启动动画之前添加.setFillAfter()
方法调用:
myFadeInAnimation.setFillAfter(true);
body.startAnimation(myFadeInAnimation);
答案 1 :(得分:1)
当你设置背景drawable时,尝试在ImageView setAlpha(float)
上设置alpha,该alpha应该保留你最终动画的alpha值。
答案 2 :(得分:1)
看起来我正在使用body.setBackgroundDrawable()而不是body.setImageDrawable()。当然我还需要在那里添加setAlpha()。