คุณสามารถสร้างไฟล์แอนิเมชั่น. xmlของคุณเองเพื่อทำให้ใหม่Activity
และจางหายไปในปัจจุบันActivity
:
fade_in.xml
<?xml version="1.0" encoding="utf-8"?>
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator"
android:fromAlpha="0.0" android:toAlpha="1.0"
android:duration="500" />
fade_out.xml
<?xml version="1.0" encoding="utf-8"?>
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator"
android:fromAlpha="1.0" android:toAlpha="0.0"
android:fillAfter="true"
android:duration="500" />
ใช้ในรหัสเช่นนั้น: (ภายในของคุณActivity
)
Intent i = new Intent(this, NewlyStartedActivity.class);
startActivity(i);
overridePendingTransition(R.anim.fade_in, R.anim.fade_out);
รหัสข้างต้นจะทำให้รหัสที่ใช้งานอยู่ในปัจจุบันActivity
จางหายไปและจางหายไปในการเริ่มต้นใหม่Activity
ทำให้การเปลี่ยนแปลงราบรื่น
อัปเดต : @Dan J ชี้ให้เห็นว่าการใช้แอนิเมชั่น Android ในตัวช่วยเพิ่มประสิทธิภาพซึ่งฉันพบว่าเป็นเช่นนั้นหลังจากทำการทดสอบบางอย่าง หากคุณต้องการทำงานกับภาพเคลื่อนไหวในตัวให้ใช้:
overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
สังเกตว่าฉันอ้างถึงandroid.R
แทนที่จะR
เข้าถึงรหัสทรัพยากร
UPDATE : ตอนนี้มันเป็นเรื่องธรรมดาที่จะดำเนินการเปลี่ยนโดยใช้ระดับการเปลี่ยนที่รู้จักในระดับ API 19
overridePendingTransition(android.R.anim.fadein, android.R.anim.fadeout);
ดูไฟล์เหล่านั้นอาจให้คำแนะนำเกี่ยวกับวิธีการปรับปรุงภาพเคลื่อนไหวที่กำหนดเองของคุณ (เช่นการทำให้การเลือนหายไปนานกว่าการเลือนหายไป)