Android 两个Activity之间的切换动画

xuluylin 2011-10-05 08:54:33
假如果是Activity1启动Activity2:即在Activity中startActivity(//Activity2);而现在我要让Activity1慢慢消失,Activity2慢慢出现,而不是系统默认的直接出现来到前台。
在网上有人说在startActivity()之后加上overridePendingTransition(enterAnim, exitAnim)方法,但我都试了好多遍,还是不行。求大师讲解?????????????
...全文
6968 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
liketyong 2012-10-24
  • 打赏
  • 举报
回复
不值,共同进步了
  • 打赏
  • 举报
回复
这个好哦,正要找
荒颜 2012-10-23
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]
在此谢谢waterstarsx的答复。还有就是每次如果要想显示自己的动画,还必须先将设置中的动画改一下啊???
而且,好像我不自定义动画,系统默认的就有一个左出、右进的一个切换动画。
[/Quote]
系统设置里面 设置成 显示所有动画 这样你的程序会有效果 不然会被屏蔽的,不用每次设置,一次就够了
自定义动画和系统的动画格式差不多,随便写的 可以把动画时间写长点 可以看清楚效果
plike001 2011-10-07
  • 打赏
  • 举报
回复
学习了
waterstarsx 2011-10-06
  • 打赏
  • 举报
回复
还有,记得模拟器,或真机的设置记得开动画效果,在settings里面。
waterstarsx 2011-10-06
  • 打赏
  • 举报
回复
public class Activity01 extends Activity {
/** Called when the activity is first created. */
private static final String TAG="Activity01";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button mybutton=(Button) findViewById(R.id.button1);

mybutton.setOnClickListener(new Button.OnClickListener()
{

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent=new Intent();
intent.setClass(Activity01.this, Activity02.class);

startActivity(intent);
int version = Integer.valueOf(android.os.Build.VERSION.SDK);
if(version >= 5) {
overridePendingTransition(R.anim.zoom_in, R.anim.zoom_out);
//overridePendingTransition(android.R.anim.decelerate_interpolator,android.R.anim.decelerate_interpolator);
//overridePendingTransition(android.R.anim.overshoot_interpolator,android.R.anim.linear_interpolator);
}
Activity01.this.finish();
}

});

}

可以的,不过你要设置对应的动画效果,系统有提供,也可以自己定义,在res,文件下,新建anim,然后把描述动画的xml放进去,就可以像我一样用了。我的两个文件如下

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/decelerate_interpolator">
<translate
android:fromXDelta="100%p"
android:toXDelta="0"
android:fromYDelta="100%p"
android:toYDelta="0"
android:duration="1000"
/>
<scale
android:fromXScale="0.0"
android:toXScale="1.0"
android:fromYScale="0.0"
android:toYScale="1.0"
android:pivotX="0%"
android:pivotY="0%"
android:duration="1000"
/>
</set>


<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/decelerate_interpolator"
android:zAdjustment="top">
<translate
android:fromYDelta="0"
android:toYDelta="100%p"
android:duration="1000"
/>
<scale
android:fromXScale="1.0"
android:toXScale="0.0"
android:fromYScale="1.0"
android:toYScale="0.0"
android:pivotX="0%"
android:pivotY="100%"
android:duration="1000"
/>
</set>

需要整个项目可以找我。
Calon Mo 2011-10-06
  • 打赏
  • 举报
回复
你去下载我前几天上传上来的那个看看,不知道是不是你想要的那个效果。
xuluylin 2011-10-06
  • 打赏
  • 举报
回复
在此谢谢waterstarsx的答复。还有就是每次如果要想显示自己的动画,还必须先将设置中的动画改一下啊???
而且,好像我不自定义动画,系统默认的就有一个左出、右进的一个切换动画。
dxawmhmy 2011-10-06
  • 打赏
  • 举报
回复


其实Activity提供了这个函数

public void overridePendingTransition (int enterAnim, int exitAnim)

Since: API Level 5
Call immediately after one of the flavors of startActivity(Intent) or finish() to specify an explicit transition animation to perform next.
Parameters
enterAnim A resource ID of the animation resource to use for the incoming activity. Use 0 for no animation.
exitAnim A resource ID of the animation resource to use for the outgoing activity. Use 0 for no animation.
开源螺丝钉 2011-10-06
  • 打赏
  • 举报
回复
mark一下
lpohvbe 2011-10-05
  • 打赏
  • 举报
回复
mark下, 同求

80,359

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧