做這些修改您的動畫文件:
enter.xml:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false">
<translate
android:duration="500"
android:fromXDelta="100%"
android:fromYDelta="0%"
android:toXDelta="0%"
android:toYDelta="0%" />
</set>
exit.xml:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false">
<translate
android:duration="500"
android:fromXDelta="0%"
android:fromYDelta="0%"
android:toXDelta="-100%"
android:toYDelta="0%" />
</set>
你有你的第二個活動由右至左滑動。
有關如何玩弄了動畫的fromXDelta和toXDelta值更好的理解,這裏是價值一個非常基本的例證:
這樣你就可以很容易地理解爲什麼你添加的android: fromXDelta =「0%」和android:toXDelta =「 - 100%」。這是因爲你希望它從0%到-100%的位置。
[編輯]
所以,如果你想從ActivityA打開ActivityB你做以下(假設你有一個按鈕):
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
startActivity(new Intent(ActivityA.this, ActivityB.class));
overridePendingTransition(R.anim.enter, R.anim.exit);
}
});
現在,如果你想擁有當你離開活動B時,需要2個新的動畫文件和一些代碼,如下所示:
首先動畫文件: left_to_right.xml:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false">
<translate
android:duration="500"
android:fromXDelta="-100%"
android:fromYDelta="0%"
android:toXDelta="0%"
android:toYDelta="0%" />
</set>
right_to_left。XML:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false">
<translate
android:duration="500"
android:fromXDelta="0%"
android:fromYDelta="0%"
android:toXDelta="100%"
android:toYDelta="0%" />
</set>
而且在ActivityB做到以下幾點:
@Override
public void onBackPressed() {
super.onBackPressed();
overridePendingTransition(R.anim.left_to_right, R.anim.right_to_left);
}
此外,如果你有最多具備導航功能,你必須添加動畫在這種情況下:
你啓用這樣的導航:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getActionBar().setDisplayHomeAsUpEnabled(true);
}
而這也是你在這種情況下如何處理動畫:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
// Respond to the action bar's Up/Home button
case android.R.id.home:
//NavUtils.navigateUpFromSameTask(this);
finish();
overridePendingTransition(R.anim.left_to_right, R.anim.right_to_left);
return true;
}
return super.onOptionsItemSelected(item);
}
另外請注意,即使您的代碼沒問題,您的手機可能會關閉動畫。要打開然後執行以下操作:
- 打開設置,並轉到開發人員選項
- 確保它被啓用(通過滑動切換按鈕,右上方)
- 向下滾動,繪圖下,自來水這些選項逐個:視窗動畫比例,過渡動畫縮放,動畫和時間尺度
- 選擇「動畫縮放1x」
這是否幫助?
寫什麼,開始活動和目標活動? – 2014-10-17 18:49:52
我會編輯我的答案以添加此 – Mike 2014-10-17 18:50:15
如果您在此處添加從左到右的信息,那麼這將非常有用 – 2014-10-17 18:55:23