アニメーションファイルを4つ作成して画面遷移の際に指定するだけ
startActivityForResult・・・の下に
overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left);
の一文を加える
メイン画面のActivityファイル
package com.slide; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; public class SlideTestActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } public void ButtonOnClick(View v){ Intent subactivity = new Intent(this,com.slide.SubActivity.class); startActivityForResult(subactivity, R.id.button1); overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left); } }
サブ画面のActivityファイル
package com.slide; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; public class SubActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.sub); } public void ButtonOnClick(View v){ Intent subactivity = new Intent(this,com.slide.SlideTestActivity.class); startActivityForResult(subactivity, R.id.button1); overridePendingTransition(R.anim.slide_in_left,R.anim.slide_out_right); } }
メイン画面のレイアウトファイル
main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:text="メイン画面" /> <Button android:id="@+id/button1" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="次へ" android:onClick="ButtonOnClick"/> </LinearLayout>
サブ画面のレイアウトファイル
sub.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:text="サブ画面" /> <Button android:id="@+id/button1" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="戻る" android:onClick="ButtonOnClick"/> </LinearLayout>
アニメーションファイルを用意する
resフォルダの中にanimフォルダを作成して、そこにxmlファイルを作成する。
次のアクティビティが右から登場
slide_in_right.xml
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator" > <translate android:duration="300" android:fromXDelta="100%p" android:toXDelta="0" /> <alpha android:duration="300" android:fromAlpha="0.0" android:toAlpha="1.0" /> </set>現在のアクティビティが左に消える
slide_out_left.xml
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator" > <translate android:duration="300" android:fromXDelta="0" android:toXDelta="-100%p" /> <alpha android:duration="300" android:fromAlpha="1.0" android:toAlpha="0.0" /> </set>
元のアクティビティが左から登場
slide_in_left.xml
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator" > <translate android:duration="300" android:fromXDelta="-100%p" android:toXDelta="0" /> <alpha android:duration="300" android:fromAlpha="0.0" android:toAlpha="1.0" /> </set>二つ目のアクティビティが右に退場
slide_out_right.xml
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator" > <translate android:duration="300" android:fromXDelta="0" android:toXDelta="100%p" /> <alpha android:duration="300" android:fromAlpha="1.0" android:toAlpha="0.0" /> </set>
サブ画面をマニフェストファイルに追加するのを忘れないようにする。
ダウンロード
0 件のコメント:
コメントを投稿