34

Trong ứng dụng Android của tôi, tôi đang tạo một phương thức bật tất cả các hoạt động và khởi động hoạt động đầu tiên.Chuyển đổi hoạt ảnh giữa các hoạt động sử dụng FLAG_ACTIVITY_CLEAR_TOP

tôi sử dụng mã này:

Intent intent = new Intent(this, MMConnection.class); 
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
this.startActivity(intent); 

Như tôi đã nhận thấy rằng quá trình chuyển đổi vẫn còn là một trái để hình ảnh động ngay, không ai biết nếu có một cách để thay đổi hình ảnh động hệ thống khi bắt đầu một hoạt động?

Thực ra, tôi lý tưởng muốn chuyển từ phải sang trái (như khi nút trả lại được khai thác)

cảm ơn bạn đã trợ giúp!

Trả lời

45

CoolMcGrr là đúng, bạn muốn sử dụng overridePendingTransition(int enterAnim, int exitAnim).

Để đặc biệt có được sự chuẩn "nút quay lại" chuyển tiếp, tôi sử dụng những khi enterAnimexitAnim chuyển:

push_right_in.xml

<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android"> 
    <translate android:fromXDelta="-100%p" android:toXDelta="0" android:duration="@android:integer/config_shortAnimTime"/> 
    <alpha android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="@android:integer/config_shortAnimTime" /> 
</set> 

push_right_out.xml

<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android"> 
    <translate android:fromXDelta="0" android:toXDelta="100%p" android:duration="@android:integer/config_shortAnimTime"/> 
    <alpha android:fromAlpha="1.0" android:toAlpha="0.0" android:duration="@android:integer/config_shortAnimTime" /> 
</set> 
+1

Có vẻ là một câu trả lời tốt hơn cho tôi, vì E-Riz thực sự đã trả lời câu hỏi thay vì chỉ đăng một liên kết như CoolMcGrrr đã làm. Sau đó, một lần nữa E-Riz đã được 8 tháng sau đó để trả lời nó. – ArtOfWarfare

+0

sau, nhưng câu trả lời hay hơn –

+0

Bạn sẽ gọi hàm overridePendingTransition ở đâu? Trước hoặc sau startActivity? – Apqu

5

Sự cố xảy ra hiện nay vì trước ICS và ICS có các chuyển đổi hoạt động tích hợp khác nhau. Đây là sạch hơn nhiều so với việc xác định hình ảnh động và SDK của riêng bạn độc lập:

Intent intent = new Intent(this, MMConnection.class); 
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_NO_ANIMATION); 
this.startActivity(intent); 
finish(); 

này sẽ bắt đầu hoạt động (không nhìn thấy được chưa) và chơi "hoạt động kết thúc" chuyển đổi sang hoạt động mới.

6

tôi đã sử dụng mã này:

overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out); 

Bạn có thể thấy những ví dụ trong GmailAnimation hoặc LopeAnimations. Ngoài ra, bạn có thể xem thêm trong số này Blog.

Các vấn đề liên quan