图像淡入不会保持最终的alpha

时间:2012-01-30 00:54:29

标签: android image animation

我有一个图像,一旦页面加载就会淡入。但是,不保留动画中设置的图像的最终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值?

由于

3 个答案:

答案 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()。