activity的切换的效果使用overridePendingTransition来实现,所以保持所有的startActivity方法有统一调用入口里面加上下面这段话就行
overridePendingTransition(R.anim.slide_in_right,R.anim.slide_out_left);
但是如果让用户点击手机back按键实现往右推的效果呢?其实做一个BaseActivity类, 里面覆盖onBackPressed方法就行。
@Override public void onBackPressed() { super.onBackPressed(); //To change body of overridden methods use File | Settings | File Templates. overridePendingTransition(R.anim.slide_in_left, R.anim.slide_out_right); }
还有一点要注意的, 如果你的界面上有回退button,这时候点的时候不是调用finish(),而是调用onBackPressed方法就行。
aq.id(R.id.about_btnBack).clicked(new OnClickListener() { @Override public void onClick(View v) { onBackPressed(); } });
reference: http://stackoverflow.com/questions/3293765/custom-back-button-animation
附上所有animation
<?xml version="1.0" encoding="utf-8"?><!--/* //device/apps/common/res/anim/slide_in_right.xml**** Copyright 2007, The Android Open Source Project**** Licensed under the Apache License, Version 2.0 (the "License"); ** you may not use this file except in compliance with the License. ** You may obtain a copy of the License at **** http://www.apache.org/licenses/LICENSE-2.0 **** Unless required by applicable law or agreed to in writing, software ** distributed under the License is distributed on an "AS IS" BASIS, ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ** See the License for the specific language governing permissions and ** limitations under the License.*/--><set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:fromXDelta="100%p" android:toXDelta="0" android:duration="@android:integer/config_mediumAnimTime"/><!-- <alpha android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="@android:integer/config_shortAnimTime" />--></set>
<?xml version="1.0" encoding="utf-8"?><!--/* //device/apps/common/res/anim/slide_out_left.xml**** Copyright 2007, The Android Open Source Project**** Licensed under the Apache License, Version 2.0 (the "License"); ** you may not use this file except in compliance with the License. ** You may obtain a copy of the License at **** http://www.apache.org/licenses/LICENSE-2.0 **** Unless required by applicable law or agreed to in writing, software ** distributed under the License is distributed on an "AS IS" BASIS, ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ** See the License for the specific language governing permissions and ** limitations under the License.*/--><set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:fromXDelta="0" android:toXDelta="-100%p" android:duration="@android:integer/config_mediumAnimTime"/><!-- <alpha android:fromAlpha="1.0" android:toAlpha="0.0" android:duration="@android:integer/config_shortAnimTime" />--></set>
<?xml version="1.0" encoding="utf-8"?><!--/* //device/apps/common/res/anim/slide_in_left.xml**** Copyright 2007, The Android Open Source Project**** Licensed under the Apache License, Version 2.0 (the "License"); ** you may not use this file except in compliance with the License. ** You may obtain a copy of the License at **** http://www.apache.org/licenses/LICENSE-2.0 **** Unless required by applicable law or agreed to in writing, software ** distributed under the License is distributed on an "AS IS" BASIS, ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ** See the License for the specific language governing permissions and ** limitations under the License.*/--><set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:fromXDelta="-100%p" android:toXDelta="0" android:duration="@android:integer/config_mediumAnimTime"/><!-- <alpha android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="@android:integer/config_mediumAnimTime" />--></set>
<?xml version="1.0" encoding="utf-8"?><!--/* //device/apps/common/res/anim/slide_out_right.xml**** Copyright 2007, The Android Open Source Project**** Licensed under the Apache License, Version 2.0 (the "License"); ** you may not use this file except in compliance with the License. ** You may obtain a copy of the License at **** http://www.apache.org/licenses/LICENSE-2.0 **** Unless required by applicable law or agreed to in writing, software ** distributed under the License is distributed on an "AS IS" BASIS, ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ** See the License for the specific language governing permissions and ** limitations under the License.*/--><set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:fromXDelta="0" android:toXDelta="100%p" android:duration="@android:integer/config_mediumAnimTime"/><!-- <alpha android:fromAlpha="1.0" android:toAlpha="0.0" android:duration="@android:integer/config_mediumAnimTime" />--></set>