Android 两个Activity之间的切换动画
假如果是Activity1启动Activity2:即在Activity中startActivity(//Activity2);而现在我要让Activity1慢慢消失,Activity2慢慢出现,而不是系统默认的直接出现来到前台。在网上有人说在startActivity()之后加上overridePendingTransition(enterAnim, exitAnim)方法,但我都试了好多遍,还是不行。求易做图讲解?????????????
--------------------编程问答-------------------- mark下, 同求 --------------------编程问答--------------------
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>
需要整个项目可以找我。 --------------------编程问答-------------------- 还有,记得模拟器,或真机的设置记得开动画效果,在settings里面。 --------------------编程问答-------------------- mark一下 --------------------编程问答--------------------
其实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.
--------------------编程问答-------------------- 在此谢谢waterstarsx的答复。还有就是每次如果要想显示自己的动画,还必须先将设置中的动画改一下啊???
而且,好像我不自定义动画,系统默认的就有一个左出、右进的一个切换动画。 --------------------编程问答-------------------- 你去下载我前几天上传上来的那个看看,不知道是不是你想要的那个效果。 --------------------编程问答-------------------- 学习了 --------------------编程问答-------------------- --------------------编程问答--------------------
系统设置里面 设置成 显示所有动画 这样你的程序会有效果 不然会被屏蔽的,不用每次设置,一次就够了
自定义动画和系统的动画格式差不多,随便写的 可以把动画时间写长点 可以看清楚效果 --------------------编程问答-------------------- 不值,共同进步了 --------------------编程问答-------------------- 这个好哦,正要找
补充:移动开发 , Android