标签: animationutils

如何在周期结束时停止动画?

我有一个我正在旋转的ImageView用作加载动画.一旦我的数据被加载,我试图停止动画,但不是循环到最后然后停止,动画进入中途点,然后停止,然后图像快速恢复到其原始状态,这看起来很丑陋.

这是我尝试过的:

选项1:

ImageView iv = (ImageView) findViewById(R.id.refreshImage);
if (iv != null) {
    iv.clearAnimation();
}
Run Code Online (Sandbox Code Playgroud)

选项2:

ImageView iv = (ImageView) findViewById(R.id.refreshImage);
if (iv != null && iv.getAnimation() != null) {
    iv.getAnimation().cancel();
}
Run Code Online (Sandbox Code Playgroud)

选项3:

ImageView iv = (ImageView) findViewById(R.id.refreshImage);
if (iv != null && iv.getAnimation() != null) {
    iv.getAnimation().setAnimationListener(new AnimationListener() {

        @Override
        public void onAnimationStart(Animation animation) {

        }

        @Override
        public void onAnimationRepeat(Animation animation) {
            animation.cancel();

        }

        @Override
        public void onAnimationEnd(Animation animation) {

        }
    });
}
Run Code Online (Sandbox Code Playgroud)

最终结果在所有三种情况下都是相同的.如何旋转图像并将其放回原点?

编辑:

一些进一步的信息:我的旋转动画:

<?xml version="1.0" encoding="utf-8"?> …
Run Code Online (Sandbox Code Playgroud)

animation android animationutils

7
推荐指数
1
解决办法
8852
查看次数

使用AnimationUtils显示和隐藏FAB时的竞争条件

在允许用户通过社交网络登录的Android应用中,我FAB使用以下代码显示和隐藏a :

应用截图

public abstract class LoginFragment extends Fragment {

    private FloatingActionButton mFab;
    private Animation mShowFab;
    private Animation mHideFab;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        mShowFab = AnimationUtils.makeInAnimation(getContext(), false);
        mShowFab.setAnimationListener(new Animation.AnimationListener() {
            @Override
            public void onAnimationStart(Animation animation) {
                mFab.setVisibility(View.VISIBLE);
            }

            @Override
            public void onAnimationEnd(Animation animation) {
            }

            @Override
            public void onAnimationRepeat(Animation animation) {
            }
        });

        mHideFab = AnimationUtils.makeOutAnimation(getContext(), true);
        mHideFab.setAnimationListener(new Animation.AnimationListener() {
            @Override
            public void onAnimationStart(Animation animation) {
            }

            @Override
            public void onAnimationEnd(Animation animation) {
                mFab.setVisibility(View.INVISIBLE);
            }

            @Override …
Run Code Online (Sandbox Code Playgroud)

animation android android-animation animationutils floating-action-button

6
推荐指数
1
解决办法
751
查看次数