Bạn có thể tạo các tệp hoạt hình .xml của riêng mình để làm mờ dần tệp mới Activityvà mờ dần hiện tại 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" />
Sử dụng nó trong mã như thế: (Bên trong của bạn Activity)
Intent i = new Intent(this, NewlyStartedActivity.class)
startActivity(i)
overridePendingTransition(R.anim.fade_in, R.anim.fade_out)
Đoạn mã trên sẽ làm mờ dần mã hiện đang hoạt động Activityvà mờ dần trong đoạn mã mới bắt đầu, Activitydẫn đến quá trình chuyển đổi suôn sẻ.
CẬP NHẬT : @Dan J đã chỉ ra rằng việc sử dụng các hoạt ảnh tích hợp sẵn trên Android sẽ cải thiện hiệu suất , điều mà tôi thực sự thấy đúng sau khi thực hiện một số thử nghiệm. Nếu bạn thích làm việc với các hoạt ảnh dựng sẵn, hãy sử dụng:
overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
Lưu ý tôi tham chiếu android.Rthay vì Rtruy cập id tài nguyên.
CẬP NHẬT : Thực tế phổ biến hiện nay là thực hiện chuyển đổi bằng cách sử dụng lớp Chuyển đổi được giới thiệu trong API cấp 19 .
overridePendingTransition(android.R.anim.fadein, android.R.anim.fadeout);Xem các tệp đó cũng có thể cung cấp cho bạn các gợi ý về cách cải thiện hoạt ảnh tùy chỉnh của mình (ví dụ: bằng cách làm mờ dần lâu hơn là mờ dần).