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

问题描述 投票:0回答:2

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

你能告诉我为什么我只看了一会儿的褪色然后又恢复原来的阿尔法吗?

我添加了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); 
java android xml eclipse animation
2个回答
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);
        }
    }
}

并为动画速度修改动画持续时间和插补器


0
投票

您可以使用LinearInterpolator而不是AccelerateInterpolator

我知道现在为时已晚,但会帮助其他人。

© www.soinside.com 2019 - 2024. All rights reserved.