其他分享
首页 > 其他分享> > android-如何为活动过渡的各个视图设置动画?

android-如何为活动过渡的各个视图设置动画?

作者:互联网

切换活动时如何在单个视图上触发动画?
即如果用户单击按钮转到下一页,我希望我的一些视图从屏幕上飞出,并使背景淡入淡出进入下一个屏幕,而不是将整个屏幕动画化为一块.

这可能吗?如果是这样,应该怎么做? (我使用的是最新的API 4.1,并且不必向后兼容)

编辑:目前,通过在onResume()中调用它来制作过渡动画效果很好,但是当我按回去时,活动切换的速度比在onPause()中启动的任何动画都要快,所以我认为这是一种更好的方法/位置去做这个.

解决方法:

Overriding onResume() works fine, but onPause/onStop don’t wait for
the animation to complete before moving to the next screen.

什么事件开始了ex.单击按钮将需要在调用启动活动之前启动动画.

button.setOnClickListener(new ViewOnClickListener() {

    @Override
    void onClick(... {

        // start animations
        // wait till they are finished
        // start activity
    }
});

由于启动新活动的每个事件都将具有动画代码,因此我也建议将其移至某种帮助程序类中,以免到处都有重复的代码.例如

button1.setOnClickListener(new ViewOnClickListener() {

    @Override
    void onClick(... {

        helper.AnimateViews(/* probably pass activity or context */); 

        // start activity
    }
});

button2.setOnClickListener(new ViewOnClickListener() {

    @Override
    void onClick(... {

        helper.animateViews(/* probably pass activity or context */); 

        // start activity
    }
});

public class ViewAnimiationHelper {

    public void animateViews(Activity activity) {

        // find all views if not found then don't animate them
        View view1 = activity.findViewById(R.id.view1);

        if(view1 != null) {

            // animate view
        }

        View view2 = activity.findViewById(R.id.view1);

        if(view2 != null) {

            // animate view
        }
    }
}

这都是sudo java代码,但希望足以让您理解.祝好运!

标签:android-layout,android-animation,android-view,android
来源: https://codeday.me/bug/20191101/1980112.html