您的位置:首页 > 其它

Activity切换动画overridePendingTransition

2016-01-19 23:03 197 查看

一:动画资源文件

trans_in.xml
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromXDelta="100%p"
android:toXDelta="0"
android:fromYDelta="0"
android:toYDelta="0"
android:duration="500">
</translate>
trans_out.xml
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromXDelta="0"
android:toXDelta="-100%p"
android:fromYDelta="0"
android:toYDelta="0"
android:duration="500">

</translate>
trans_pre_in.xml
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromXDelta="-100%p"
android:toXDelta="0"
android:fromYDelta="0"
android:toYDelta="0"
android:duration="500">
</translate>
trans_pre_out.xml
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromXDelta="0"
android:toXDelta="100%p"
android:fromYDelta="0"
android:toYDelta="0"
android:duration="500">

</translate>

二:Activity使用动画资源文件跳转

MainActivity.java
public class MainActivity extends AppCompatActivity implements View.OnClickListener{
private Button btMain;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btMain = (Button) findViewById(R.id.bt_main);
btMain.setOnClickListener(this);
}
private void jumpToSecond(View view){
Intent animIntent = new Intent(MainActivity.this, SecondActivity.class);
startActivity(animIntent);
//该方法必须在startActivity()或finish()之后调用
//第一个参数是待打开的Activity的动画,第二个参数是当前activity的动画
//要想在activity切换时当前activity无动画,只需修改trans_out使其x轴和y轴均不移动即可
overridePendingTransition(R.anim.trans_in,R.anim.trans_out);
}

@Override
public void onClick(View v) {
if(v.getId() == R.id.bt_main){
jumpToSecond(v);
}
}
}
SecondActivity.java
public class SecondActivity extends AppCompatActivity implements View.OnClickListener{
private Button btSecond;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
btSecond = (Button) findViewById(R.id.bt_second);
btSecond.setOnClickListener(this);
}
private void jumpToFirst(View view){
Intent intent = new Intent(SecondActivity.this,MainActivity.class);
startActivity(intent);
finish();
//该方法必须在startActivity()或finish()之后调用
overridePendingTransition(R.anim.trans_pre_in,R.anim.trans_pre_out);
}

@Override
public void onClick(View v) {
if(v.getId() == R.id.bt_second){
jumpToFirst(v);
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: