淡入淡出\在android中工作太短,太快

时间:2013-10-30 10:55:28

标签: java android xml eclipse animation

我正在尝试在Android中应用淡入\转换。

你能告诉我为什么我只看了一会儿的褪色然后又回到原来的alpha?

我已添加setFillAfter(true);以保持图片消失。

我试过了:

                animation = android.view.animation.AnimationUtils
                        .loadAnimation(AppService.getAppContext(),
                                com.waze.R.anim.fade_out);

                animation.setInterpolator(new AccelerateInterpolator());
                animation.setFillAfter(true);
                boxImage_left.startAnimation(animation);

用这个:

<set xmlns:android="http://schemas.android.com/apk/res/android"
           android:fillAfter="true">
  <alpha android:fromAlpha="0.0"
         android:toAlpha="1.0"
         android:repeatCount="0"
         android:duration="500"/>
</set>

还有:

                AlphaAnimation alpha = new AlphaAnimation(0,1);
                alpha.setDuration(600);
                animation.setInterpolator(new AccelerateInterpolator());
                animation.setFillAfter(true);
                vImage_left.startAnimation(alpha); 

2 个答案:

答案 0 :(得分:0)

让您的活动实现AnimationListener,并在动画结束后设置可见性。

public class YourActivity extends Activity implements AnimationListener
{
    @override
    onCreate(Bundle x)
    {
        ...
        // set animation listener
        animFadein.setAnimationListener(this);
        animFadeOut.setAnimationListener(this);

    }
    @Override
    public void onAnimationEnd(Animation animation)
    {
        if (animation == animFadein)
        {
            view.setVisibility(View.VISIBLE);
        }
         if (animation == animFadeOut)
        {
            view.setVisibility(View.INVISIBLE);
        }
    }
}

对于动画速度修改动画持续时间和插补器

答案 1 :(得分:0)

您可以使用 LinearInterpolator

代替 AccelerateInterpolator

我知道为时已晚,但会帮助别人。