您的位置:首页 > 移动开发 > Android开发

Android的Activity屏幕左右切换动画

2016-02-26 20:23 344 查看
在Android开发过程中,有时候会要求Activity之间切换能够有动画效果。这时候我们一般在StartActivity(intent)之后使用overridePendingTransition (int
enterAnim, int exitAnim)。

第一个参数enterAnim表示新Activity进入时的动画。

第二个参数exitAnim表示原先旧的Activity退出时的动画。



如图所示,为手机页面位置示意图。

从位置2到位置1代码:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" <span style="font-family: 'Microsoft YaHei', Verdana, sans-serif, SimSun; font-size: 0.9em;">android:interpolator="@android:anim/accelerate_interpolator"></span><span style="font-size: 0.9em; font-family: 'Microsoft YaHei', Verdana, sans-serif, SimSun;"><translate android:fromXDelta="0%p" android:toXDelta="-100%p"</span><span style="font-size: 0.9em; font-family: 'Microsoft YaHei', Verdana, sans-serif, SimSun;"> android:duration="500" /></span><span style="font-size: 0.9em; font-family: 'Microsoft YaHei', Verdana, sans-serif, SimSun;"></set></span>


从位置3到位置2代码:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android :anim/accelerate_interpolator"><translate android:fromXDelta="100%p" android:toXDelta="0%p"android:duration="500" /></set>


Android代码如下:

public class FirstActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

Button button = (Button)findViewById(R.id.button1);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent();
intent.setClass(<span style="font-size: 0.9em; font-family: 'Microsoft YaHei', Verdana, sans-serif, SimSun;">FirstActivity </span><span style="font-size: 0.9em; font-family: 'Microsoft YaHei', Verdana, sans-serif, SimSun;">.this, SecondActivity.class);</span>
startActivity(intent);
//设置切换动画,从右边进入,左边退出
overridePendingTransition(R.anim.in_from_right, R.anim.out_to_left);
}
});
}
}


当然,这只是进入新Activity时的动画效果,采取的是从右进入。

如果在按返回键的时候也要有动画效果,可以在OnBackPressed()方法中调用overridePendingTransition(int
one,int second);采取的动画效果可以是从左边出来。即上图位置1到位置2,位置2到位置3。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: