zoukankan      html  css  js  c++  java
  • 【Android】Activity之间的动画切换

    不多说,直接上代码,第一个Activity:

    package com.example.activityanimation;
    
    import android.os.Bundle;
    import android.app.Activity;
    import android.content.Intent;
    import android.view.Menu;
    import android.view.View;
    import android.widget.Button;
    
    public class MainActivity extends Activity {
        Button button;
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            
            button = (Button)findViewById(R.id.button1);
            button.setOnClickListener(new Button.OnClickListener(){
                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    Intent intent = new Intent();
                    intent.setClass(MainActivity.this, TestActivity.class);
                    MainActivity.this.finish();
                    startActivity(intent);
                    overridePendingTransition(R.anim.push_left_in, R.anim.push_left_out);
                }
            });
        }
    
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            getMenuInflater().inflate(R.menu.activity_main, menu);
            return true;
        }
    }

    第二个Activity:

     1 package com.example.activityanimation;
     2 
     3 import android.os.Bundle;
     4 import android.app.Activity;
     5 import android.content.Intent;
     6 import android.view.Menu;
     7 import android.view.View;
     8 import android.widget.Button;
     9 
    10 public class TestActivity extends Activity {
    11     Button button;
    12     
    13     @Override
    14     public void onCreate(Bundle savedInstanceState) {
    15         super.onCreate(savedInstanceState);
    16         setContentView(R.layout.activity_test);
    17         
    18         button = (Button)findViewById(R.id.button2);
    19         button.setOnClickListener(new Button.OnClickListener(){
    20             @Override
    21             public void onClick(View v) {
    22                 // TODO Auto-generated method stub
    23                 Intent intent = new Intent();
    24                 intent.setClass(TestActivity.this, MainActivity.class);
    25                 TestActivity.this.finish();
    26                 startActivity(intent);
    27                 overridePendingTransition(R.anim.push_right_in, R.anim.push_right_out);
    28             }
    29         });
    30     }
    31 
    32     @Override
    33     public boolean onCreateOptionsMenu(Menu menu) {
    34         getMenuInflater().inflate(R.menu.activity_test, menu);
    35         return true;
    36     }
    37 }

    两个界面分别如下:

    四个动画文件,位于(res/anim)下面:

    1)push_left_in.xml:

     1 <?xml version="1.0" encoding="utf-8"?>
     2 <set xmlns:android="http://schemas.android.com/apk/res/android">
     3     <translate 
     4         android:fromXDelta="100%p" 
     5         android:toXDelta="0"
     6         android:duration="1000" />
     7     <alpha 
     8         android:fromAlpha="0.1" 
     9         android:toAlpha="1.0"
    10         android:duration="1000" />
    11     
    12     <scale 
    13         android:fromXScale="2.0"
    14         android:toXScale="1.0"
    15         android:fromYScale="2.0"
    16         android:toYScale="1.0"
    17         android:pivotX="50%p"
    18         android:pivotY="50%p"
    19         android:duration="1000"
    20         />
    21 </set>

    2)push_left_out.xml:

     1 <?xml version="1.0" encoding="utf-8"?>
     2 <set xmlns:android="http://schemas.android.com/apk/res/android">
     3     <translate 
     4         android:fromXDelta="0" 
     5         android:toXDelta="-100%p"
     6         android:duration="1000" />
     7     <alpha 
     8         android:fromAlpha="1.0" 
     9         android:toAlpha="0.1"
    10         android:duration="1000" />
    11     
    12     <scale 
    13         android:fromXScale="1.0"
    14         android:toXScale="2.0"
    15         android:fromYScale="1.0"
    16         android:toYScale="2.0"
    17         android:pivotX="50%p"
    18         android:pivotY="50%p"
    19         android:duration="1000"
    20         />
    21 </set>

    3)push_right_in.xml:

     1 <?xml version="1.0" encoding="utf-8"?>
     2 <set xmlns:android="http://schemas.android.com/apk/res/android">
     3     <translate 
     4         android:fromXDelta="-100%p" 
     5         android:toXDelta="0"
     6         android:duration="1000" />
     7     <alpha 
     8         android:fromAlpha="0.1" 
     9         android:toAlpha="1.0"
    10         android:duration="1000" />
    11     
    12     <scale 
    13         android:fromXScale="2.0"
    14         android:toXScale="1.0"
    15         android:fromYScale="2.0"
    16         android:toYScale="1.0"
    17         android:pivotX="50%p"
    18         android:pivotY="50%p"
    19         android:duration="1000"
    20         />
    21 </set>

    4)push_right_out.xml:

     1 <?xml version="1.0" encoding="utf-8"?>
     2 <set xmlns:android="http://schemas.android.com/apk/res/android">
     3     <translate 
     4         android:fromXDelta="0" 
     5         android:toXDelta="100%p"
     6         android:duration="1000" />
     7     <alpha 
     8         android:fromAlpha="1.0" 
     9         android:toAlpha="0.1"
    10         android:duration="1000" />
    11     
    12     <scale 
    13         android:fromXScale="1.0"
    14         android:toXScale="2.0"
    15         android:fromYScale="1.0"
    16         android:toYScale="2.0"
    17         android:pivotX="50%p"
    18         android:pivotY="50%p"
    19         android:duration="1000"
    20         />
    21 </set>

    注:调用通过以下一行代码实现:

    1 overridePendingTransition(R.anim.push_left_in, R.anim.push_left_out);
  • 相关阅读:
    前端插件资源
    wPaint在线绘图插件
    【剑指offer】数字数组中只出现一次(2)
    系统,特别是慢查找
    Asp.Netserver控制发展Grid实现(一个)UI转让
    JAVA连接ACCESS、MYSQL、SQLSEVER、ORACLE数据库
    u_boot启动过程中的具体分析(1)
    免费是移动互联网的第一个念头
    进入公司第五届、六个月
    Windows平台Oracle使用USE_SHARED_SOCKET角色
  • 原文地址:https://www.cnblogs.com/lqminn/p/2789168.html
Copyright © 2011-2022 走看看