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的位置定義,如下圖:
從上圖可以看出,以手機螢幕下面邊未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切換例子
相關文章
- activity切換無動畫效果的實現動畫
- Android——Activity切換炫酷動畫實現Android動畫
- Android 程式設計下設定 Activity 切換動畫Android程式設計動畫
- Android 進出activity的滑動動畫效果Android動畫
- Android技術分享| Activity 過渡動畫 — 讓切換更加炫酷Android動畫
- Activity之間的動畫切換學習筆記(一)動畫筆記
- 雙輪播加切換動畫效果元件動畫元件
- [Android]使用ActivityGroup來切換Activity和LayoutAndroid
- Android開發之ViewPager切換動畫AndroidViewpager動畫
- app直播原始碼,自定義兩種Activity切換動畫實現APP原始碼動畫
- 滑鼠懸浮遮罩層動畫方式滑動切換效果遮罩動畫
- 滑鼠懸浮實現圖片動畫上下切換效果動畫
- android5.0 activity動畫Android動畫
- Android 解決Activity切換時出現白屏問題Android
- Android解決Activity切換時出現白屏問題Android
- ios 卡片切換效果iOS
- Appium用driver.start_activity切換Activity報錯APP
- Android系統橫豎屏切換時候Activity的生命週期Android
- 多Activity切換的生命週期問題
- Android 高仿騰訊新聞視訊切換效果Android
- CSS3 元素水平運動和背景色切換動畫效果CSSS3動畫
- 太讚了!超炫的頁面切換動畫效果【附原始碼下載】動畫原始碼
- Activity橫豎屏切換生命週期
- Flex的動畫效果與變換!(二)Flex動畫
- 彩色 TabBar 切換動畫實現tabBar動畫
- Android實現Activity的滑動返回效果Android
- Android Reveal圓形Activity轉場動畫Android動畫
- Android開發之Activity轉場動畫Android動畫
- JavaScript 圖片切換展示效果JavaScript
- Android中常用動畫效果Android動畫
- 動畫效果Animation-android動畫Android
- Android動畫效果之Tween Animation(補間動畫)Android動畫
- Android動畫效果之Frame Animation(逐幀動畫)Android動畫
- Android5.0Activity的轉場動畫和共享元素Android動畫
- 小程式標籤頁切換效果
- Android動畫效果之初識Property Animation(屬性動畫)Android動畫
- 馬賽克效果的JS圖片切換程式碼JS
- 百葉窗式的幻燈片切換效果原理