java - 具有多个 View 的 overridePendingTransition

标签 java android xml animation translation

overridePendingTransition 需要 2 个动画并对整个屏幕进行动画处理。

我如何在为 2 个独立 View 设置动画的 2 个 Activity 之间进行转换?

基本上,我想在按下按钮时打开一扇双门,并在打开时看到门后面的下一个 Activity 。

我可以轻松地将屏幕滑动到下一个屏幕:

overridePendingTransition(R.anim.transition_left_in, R.anim.transition_left_out);

我可以打开双门,但没有像这样的转换:

public void loginOnClick(View view)
{
    final RelativeLayout leftPanel = (RelativeLayout)findViewById(R.id.RelativeLayoutLeft);
    final RelativeLayout rightPanel = (RelativeLayout)findViewById(R.id.RelativeLayoutRight);

    Animation animLeft = new TranslateAnimation(1, 0, 1, -1, 1, 0, 1, 0);
    animLeft.setDuration(1000);
    animLeft.setFillAfter(true);
    animLeft.setAnimationListener(new Animation.AnimationListener()
    {
        @Override public void onAnimationStart(Animation animation)
        {
        }

        @Override public void onAnimationEnd(Animation animation)
        {
            leftPanel.setVisibility(View.GONE);
            rightPanel.setVisibility(View.GONE);
        }

        @Override public void onAnimationRepeat(Animation animation)
        {
        }
    });
    Animation animRight = new TranslateAnimation(1, 0, 1, 1, 1, 0, 1, 0);
    animRight.setDuration(1000);
    animRight.setFillAfter(true);

    leftPanel.startAnimation(animLeft);
    rightPanel.startAnimation(animRight);
}

我知道我可以在动画之后更改 Activity ,但我想在为上一个 Activity 设置动画时看到下一个 Activity 。

我该怎么做?
任何帮助将不胜感激。

编辑:

我发现的最佳解决方法是在第一个 Activity xml 中使用 include 来包含第二个 Activity 的上下文。 (在将打开的门后面)但这并不完全是我想要的,因为 UI 上的某些内容在第二个方法的 onCreate() 之后发生了变化。

最佳答案

我可以建议一个解决方法:

通过添加以下内容禁用主题的默认窗口动画:

<item name="android:windowAnimationStyle">@null</item>

现在,就在 Activity_2 开始之前,Activity_1 出现了双门。不要在 Activity_1 中执行动画,而是在 Activity_2 的 onCreate(Bundle) 中启动它。

您需要将双门放置在Activity_2的布局上。将 loginOnClick(View view) 的内容放置在 Activity_2 的 onCreate(Bundle) 中对 setContentView(R.layout.activity_2) 的调用之后。

由于 windowAnimationStyle 设置为 null,因此从 Activity_1 到 Activity_2 的过渡将显得无缝。

编辑:刚刚测试过,效果很好。

关于java - 具有多个 View 的 overridePendingTransition,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18631098/

相关文章:

xml - dp :serialize and escaping on ibm datapower

java - 无法在 android 中加载库 "opencv_java4"

android - 如何获取 Android 内部应用程序共享 key SHA1 以启用 Google API?

javascript - 使用javascript将所有类型1的xml节点插入到变量中

java - JAXB XJC - XPath 评估结果为空目标节点?

android - 机器学习算法 Android 拼写检查和自动更正

PHP 简单 XML 解析属性

java - 如何停止使用匿名类创建的线程?

java - Java中除空格外的屏幕填充

java - 比较数组列表的字符串元素中的字符导致indexoutofboundsException