5

Quá trình chuyển đổi Android giống nhau cho phát nổ và trượt. Thực ra tôi không nghĩ rằng hoạt ảnh của nó đang hoạt động. Ngoài ra thời gian không phải là 6 giây. Làm thế nào tôi có thể sửa chữa nó?Hoạt ảnh chuyển tiếp trên Android hiện không hoạt động

Mã được lấy từ here.

public class MainActivity extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     getWindow().requestFeature(Window.FEATURE_CONTENT_TRANSITIONS); 

     Transition ts = new Slide(); //Slide(); //Explode(); 

     ts.setDuration(6000); 
     getWindow().setEnterTransition(ts); 
     getWindow().setExitTransition(ts); 
     setContentView(R.layout.activity_main_activity); 



    } 




    @Override 
    public void onBackPressed() { 
     super.onBackPressed(); 
     finishAfterTransition(); 
    } 

Style-v21.xml

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <style name="BaseAppTheme" parent="android:Theme.Material.Light"> 
     <item name="android:colorControlHighlight">#0000AA</item> 
     <item name="android:navigationBarColor">#0000AA</item> 
     <item name="android:colorPrimaryDark">#0000AA</item> 
     <item name="android:colorPrimary">#0000FF</item> 
     <item name="android:colorAccent">#00FF00</item> 
     <item name="android:windowBackground">@android:color/black</item> 
     <item name="android:textColorPrimary">@android:color/white</item> 

     <item name="android:windowContentTransitions">true</item> 
     <item name="android:windowAllowEnterTransitionOverlap">true</item> 

     <!-- specify enter and exit transitions --> 
     <item name="android:windowEnterTransition">@transition/explode</item> 
     <item name="android:windowExitTransition">@transition/explode</item> 
    </style> 
</resources> 
+0

Tôi cũng gặp vấn đề này! Mặc dù câu trả lời được chấp nhận giải quyết được vấn đề tôi muốn biết tại sao mã của bạn không hoạt động. – nilsi

+0

Sự cố này đã được giải quyết chưa? Tôi cũng đang gặp vấn đề tương tự. – Brian

Trả lời

1

Bạn có thể sử dụng điều này để bắt đầu một hoạt động mới với chuyển

startActivity(new Intent(this, NewActivity.class)); 
overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left); 

Tạo res tập tin/anim/slide_in_right.xml

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

Tạo tệp res/anim/slide_ou t_left.xml

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

Vì vậy, 'setExitTransition (ts)' làm gì, nếu bạn vẫn phải tham chiếu rõ ràng tệp xml khi thay đổi hoạt động? Tôi đã theo dõi [this] (https://github.com/lgvalle/Material-Animations), và có vẻ như để nói rằng bạn có thể thiết lập quá trình chuyển đổi chỉ trong Java. Tôi có hiểu lầm không? – Caketray

+7

Đây là câu trả lời nghèo nàn không sử dụng API chuyển tiếp mới hơn (API được sử dụng trong câu hỏi và API thế hệ tiếp theo cho tất cả chuyển tiếp hoạt động trong tương lai). – Brian

+1

đây không phải là câu trả lời cho câu hỏi được đưa ra – abh22ishek

3

Đừng quên áp dụng chủ đề cho hoạt động hoặc toàn bộ gói trong số AndroidManifest.xml của bạn.

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="android.package" 
android:theme="@style/BaseAppTheme"> 
    .... 
    .... 
</manifest> 
9

Trong trường hợp của tôi, vì một số lý do, Hoạt ảnh chuyển tiếp bị tắt trong tùy chọn nhà phát triển của thiết bị Android của tôi.

Chỉ cần vào Settings -> Options cho nhà phát triển -> hoạt hình chuyển quy mô: thiết lập để Animation quy mô 1x

+0

ai đó cho anh chàng này một huy chương và donut !! –

4

tôi phát hiện ra rằng tôi cần phải thực sự làm

ActivityOptionsCompat activityOptionsCompat = ActivityOptionsCompat.makeSceneTransitionAnimation(activity, test, "transition_name"); 
ActivityCompat.startActivity(TourAndLoginActivity.this, new Intent(TourAndLoginActivity.this, LoginActivity.class), activityOptionsCompat.toBundle()); 

Tuy nhiên khó hiểu , nhưng tôi không biết tại sao chúng ta cần phải có một đối tượng chia sẻ để có được sự chuyển đổi vào/ra. Nếu tôi cung cấp null thay vì ActivityOptionsCompat, thì không có chuyển đổi

+0

Bạn đang đi qua cái gì cho chế độ xem thử nghiệm của mình, khi bạn đang ở trong hoạt động hoặc trong phân đoạn? – Sniper

+1

@Sniper Tôi đã bỏ lỡ một trình xây dựng mà không cần chuyển đổi các khung nhìn, mà tôi đã được chỉ ra trong một câu hỏi khác: ActivityOptionsCompat activityOptionsCompat = ActivityOptionsCompat.makeSceneTransitionAnimation (TourAndLoginActivity.this); là đủ – Boy

+0

aha Tôi thấy quan điểm của bạn, cảm ơn về điều đó nhưng ActivityOptionsCompat là bắt buộc để có quá trình chuyển đổi mới này – Sniper

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