2011-10-28 56 views
2

我需要了解Android上的动画。动画与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); 

}

但是,当我打电话完成的第二个活动,我仍然看到默认的动画(从左至右)!

再次感谢您对谁就会帮助我。

+0

我通常覆盖后退按钮, \t @覆盖 \t公共布尔的onkeydown(INT的keyCode,KeyEvent的事件){ \t \t如果(的keyCode == KeyEvent.KEYCODE_BACK){ \t \t \t光洁度(); \t \t \t \t \t overridePendingTransition(R.anim.in,R.anim。出); \t \t \t return true; \t \t} \t \t return super.onKeyDown(keyCode,event); \t} – DecodeGnome

回答

4

1)创建一个名为阿尼姆在res文件夹的文件夹

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

3)把此行的代码在新活动创建:

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)将在所述第二活动的布局的顶部的按钮(报头)。

+0

你当然也可以在返回时重写动画,只需在创建Intent fr时返回overridePendingTransition()。 – DecodeGnome

+1

我遇到了同样的问题,SO上的其他问题在startActivity(intent)之后的线上有overridePendingAnimation()。第3号是别人似乎忘记或遗漏的关键。 –

+0

只是不起作用。 – m0skit0

-1

使用此代码:

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