【问题标题】:Animation between Activity with AndroidActivity 与 Android 之间的动画
【发布时间】:2011-10-28 09:12:16
【问题描述】:

我需要了解 Android 上的动画。

例如,我的应用程序从底部带有按钮的活动开始,当用户单击按钮时,我希望另一个活动出现,并带有从下到上的动画,并且我希望该按钮成为“标题”第二个活动。

我怎样才能做到这一点?

谢谢

丹尼尔

感谢 DecodeGnome 的回答!有效!

但是当我想关闭这个活动时,我的动画有些问题,我创建了一个 anim_out.xml:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
    android:fromXDelta="0%p"
    android:fromYDelta="0%p"
    android:toXDelta="0"
    android:toYDelta="100%p"
    android:duration="300" />
 </set> 

但这不起作用(overridePendingTransition的第二个参数是干什么用的?)。

我尝试在 onStop() 函数中调用一个新的 overridePendingTransition:

public void onStop(){
   super.onStop();
   overridePendingTransition(R.anim.top_to_bottom, R.anim.top_to_bottom);

}

但是当我对第二个活动调用完成时,我仍然看到默认动画(从左到右)!

再次感谢谁会帮助我。

【问题讨论】:

  • 我通常会覆盖后退按钮,@Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { finish(); overridePendingTransition(R.anim.in, R.anim.out);返回真; } 返回 super.onKeyDown(keyCode, event); }

标签: android layout animation android-activity


【解决方案1】:

1) 在 res 文件夹中创建一个名为 anim 的文件夹

2) 在那里添加 2 个新的 XML 动画(例如,anim_in.xml 和 anim_out.xml)

3) 把这行代码放在新的activity onCreate中:

overridePendingTransition(R.anim.anim_in, R.anim.anim_out);

Anim_in.xml 示例:

<?xml version="1.0" encoding="utf-8"?>
<set
    xmlns:android="http://schemas.android.com/apk/res/android">

    <translate
        android:fromXDelta="0%p"
        android:fromYDelta="100%p"
        android:toXDelta="0"
        android:toYDelta="0%p"
        android:duration="300" />
</set> 

4) 将按钮(标题)放在第二个活动布局的顶部。

【讨论】:

  • 当然也可以在返回的时候覆盖动画,在创建Intent的时候调用overridePendingTransition()就可以了。
  • 我遇到了同样的问题,但是关于 SO 的其他问题在 startActivity(intent) 之后的行上有 overridePendingAnimation()。第 3 号是其他人似乎忘记或遗漏的关键。
【解决方案2】:

使用此代码:

     public void onBackPressed() {
        super.onBackPressed();   
        overridePendingTransition(R.anim.top_to_bottom, R.anim.top_to_bottom);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-10
    • 1970-01-01
    • 2023-04-09
    • 2012-05-07
    • 2013-02-11
    • 2023-01-14
    相关资源
    最近更新 更多