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 Activity
và 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 Activity
và mờ dần trong đoạn mã mới bắt đầu, Activity
dẫ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.R
thay vì R
truy 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).