当前位置:编程学习 > wap >>

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的答复。还有就是每次如果要想显示自己的动画,还必须先将设置中的动画改一下啊???
而且,好像我不自定义动画,系统默认的就有一个左出、右进的一个切换动画。 --------------------编程问答-------------------- 你去下载我前几天上传上来的那个看看,不知道是不是你想要的那个效果。 --------------------编程问答-------------------- 学习了 --------------------编程问答-------------------- --------------------编程问答--------------------
引用 6 楼  的回复:
在此谢谢waterstarsx的答复。还有就是每次如果要想显示自己的动画,还必须先将设置中的动画改一下啊???
而且,好像我不自定义动画,系统默认的就有一个左出、右进的一个切换动画。

系统设置里面  设置成  显示所有动画  这样你的程序会有效果  不然会被屏蔽的,不用每次设置,一次就够了
  自定义动画和系统的动画格式差不多,随便写的  可以把动画时间写长点   可以看清楚效果 --------------------编程问答-------------------- 不值,共同进步了 --------------------编程问答-------------------- 这个好哦,正要找
补充:移动开发 ,  Android
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,