Android切換Activity的動畫效果
實現click button切換兩個Activity
這個比較簡單,Android切換Activity需要使用Intent這個類
MainActivity
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button = (Button) this.findViewById(R.id.button1);
button.setOnClickListener(new Button.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent();
intent.setClass(MainActivity.this,SecondActivity.class);
startActivity(intent);
MainActivity.this.finish();
}
});
}
}
SecondActivity
public class SecondActivity extends Activity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.second_main);
Button button = (Button) findViewById(R.id.button2);
button.setOnClickListener(new Button.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent();
intent.setClass(SecondActivity.this,MainActivity.class);
startActivity(intent);
SecondActivity.this.finish();
}
});
}
}
佈局檔案等就不寫了,隨便來兩個xml檔案就行,那麼這樣只是點選button後立馬切換介面,並沒有動畫效果。我們給它加一個左進右出,右進左出的效果。
增加動畫
Android已經內建了幾種動畫效果,可以見 android.R.anim 類。一般情況下我們需要自己定義螢幕切換的效果。首先我們先了解Activity的位置定義,如下圖:
![6253588-28debc8de06aadfc.png](https://i.iter01.com/images/e8de5bdb68eb1834af753b7c0ebe8906abfdab89da600635ffceb84f919861d5.png)
從上圖可以看出,以手機螢幕下面邊未X軸,螢幕左邊為Y軸,當Activity在X軸值為-100%p時,剛好在螢幕的左邊(位置1),當X軸值為0%p時,剛好再螢幕內(位置2),當X=100%p時剛好在螢幕右邊(位置3)。
清楚了位置後,我們就可以實現左右滑動的切換效果,首先讓要退出的Activity從位置2移動到位置1,同時讓進入的Activity從位置3移動位置2,這樣就能實現從左右切換效果。
實現過程如下,首先定義2個動畫,在 res目錄建立anim目錄, 然後在目錄建立動畫的xml檔案:out_to_left.xml (從左邊退出動畫) 、in_from_right.xml(從右邊進入動畫)
out_to_left.xml (從 位置2 移動到 位置1)
<?xml version = "1.0" encoding = "utf-8" ?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="1000">
<translate android:fromXDelta="0%p" android:toXDelta="-100%p"
android:interpolator="@android:anim/accelerate_interpolator"/>
</set>
in_from_right.xml (從 位置3 移動到 位置2)
<?xml version = "1.0" encoding = "utf-8" ?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="1000">
<translate android:fromXDelta="100%p" android:toXDelta="0%p"
android:interpolator="@android:anim/accelerate_interpolator"/>
</set>
注: android:fromXDelta 動畫開始的位置, android:toXDelta 動畫結束的位置, android:duration動畫的時間。
那左進右出的情況跟這個類似。xml檔案配置好之後,怎麼才能在Activity中應用它們呢,這就用到了這個函式
<strong>public void overridePendingTransition (int enterAnim, int exitAnim)</strong>
其中:
enterAnim 定義Activity進入螢幕時的動畫
exitAnim 定義Activity退出螢幕時的動畫
overridePendingTransition 方法必須在startActivity()或者 finish()方法的後面。
比如右進左出:
overridePendingTransition(R.anim.in_from_right,R.anim.out_to_left);
該文章引用了兩篇博文,連結如下:
Android的Activity螢幕切換動畫(一)-左右滑動切換
兩個Activity切換例子
相關文章
- Android——Activity切換炫酷動畫實現Android動畫
- Android技術分享| Activity 過渡動畫 — 讓切換更加炫酷Android動畫
- 雙輪播加切換動畫效果元件動畫元件
- app直播原始碼,自定義兩種Activity切換動畫實現APP原始碼動畫
- vue路由切換滑動效果Vue路由
- Android Reveal圓形Activity轉場動畫Android動畫
- Flex的動畫效果與變換!(二)Flex動畫
- Android5.0Activity的轉場動畫和共享元素Android動畫
- Appium用driver.start_activity切換Activity報錯APP
- Android 高仿騰訊新聞視訊切換效果Android
- vue路由切換滑動效果 vue頁面跳轉互動 vue實現動畫跳轉Vue路由動畫
- CSS實現頁面切換時的滑動效果CSS
- Activity橫豎屏切換生命週期
- 成品直播原始碼,點選滑動切換效果原始碼
- Android-Activity的啟動模式Android模式
- 使用ViewPager和TabLayout來實現滑動切換效果ViewpagerTabLayout
- flutter 暗黑模式切換過渡動畫實現Flutter模式動畫
- Android SeekBar 自定義thumb,thumb旋轉動畫效果Android動畫
- Android視窗系統第四篇—Activity動畫的設定過程Android動畫
- 【Android 動畫】動畫詳解之仿微信檢視大圖效果(四)Android動畫
- TransX 一個小巧玲瓏的 vue 元件切換動畫庫Vue元件動畫
- 小程式標籤頁切換效果
- jQuery 效果 – 動畫jQuery動畫
- Activity 的 "啟動流程"(基於 Android 9.0)Android
- Android中Activity的四種啟動方式Android
- Android Activity是如何啟動的?Activity的生命週期是如何呼叫的?Android
- Flutter | 求求你們了,切換 Widget 的時候加上動畫吧Flutter動畫
- 用CSS實現Tab頁切換效果CSS
- jQuery 圖片垂直切換效果詳解jQuery
- jQuery 動畫效果 與 動畫佇列jQuery動畫佇列
- JS動畫效果——多物體動畫JS動畫
- 快速切換至Kotlin for Android模式KotlinAndroid模式
- JavaScript簡單的動畫效果JavaScript動畫
- iOS動畫效果合集、飛吧企鵝遊戲、換膚方案、畫板、文字效果等原始碼iOS動畫遊戲原始碼
- 短視訊系統,Android 使用MotionLayout實現動畫效果Android動畫
- Android學習筆記-Activity的啟動模式Android筆記模式
- 擼擼Android的羊毛(一)----Activity啟動模式Android模式
- jQuery 效果 – 停止動畫jQuery動畫
- Android Activity啟動流程原始碼分析Android原始碼