5

Android geçişi, patlatmak ve kaydırmak için aynıdır.Açıkça, onun animasyonunu düşünmüyorum. Ayrıca süre 6 saniyedir. Bunu nasıl düzeltebilirim?Android geçiş animasyonu çalışmıyor

here adresinden alınan kod.

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(); 
    } 

Stil-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

arasında bir geçiş yok Bu sorunu da yaşıyorum! Kabul edilen cevap problemi çözse de, kodunuzun neden çalışmadığını bilmek istiyorum. – nilsi

+0

Bu sorun çözüldü mü? Benzer bir sorun yaşıyorum. – Brian

cevap

1
Sen

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

dosya res oluşturma geçişle birlikte yeni bir etkinlik başlatmak için kullanabilir

/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> 

Dosya oluştur 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

Peki, aktiviteleri değiştirirken hala xml dosyasına açık bir şekilde başvurmanız gerekiyorsa, 'setExitTransition (ts) 'işlevi nedir? Bunu takip ediyorum (https://github.com/lgvalle/Material-Animations) ve sadece Java'da geçişi kurabileceğinizi söyler. Yanlış anladım mı? – Caketray

+7

Bu, daha yeni Transitions API'sini (soruda kullanılan API ve gelecekteki tüm etkinlik geçişleri için gelecek nesil API) kullanmayan kötü bir yanıttır. – Brian

+1

Bu bir soruya verilen cevap – abh22ishek

3

aktivite veya AndroidManifest.xml bütün paket için tema uygulamak unutmayın.

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

Kendi durumumda, Transition Animation, android cihazımın geliştirici seçeneklerinde kapalıydı.

Sadece Ayarlar -> Geliştirici Seçenekleri -> Geçiş animasyonu ölçek: Ben Hala şaşırtıcı gerçekten

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

yapmak gerekir öğrendim 1x

+0

birisi bu adama bir madalya ve çörek ver! –

4

Animasyon ölçeğine ayarlı ama giriş/çıkış geçişini almak için neden paylaşılan bir nesneye ihtiyacımız olduğunu bilmiyorum. ActivityOptionsCompat yerine null tedarik edersem,

+0

Etkinlik veya parça halinde olduğunuzda test görünümünüz için ne geçiyorsunuz? – Sniper

+1

@Sniper Başka bir soruya işaret ettiğim görünümleri değiştirmeden bir yapımcıyı kaçırdım: ActivityOptionsCompat activityOptionsCompat = ActivityOptionsCompat.makeSceneTransitionAnimation (TourAndLoginActivity.this); Yeterli – Boy

+0

aha Ben senin noktasını görüyorum, bunun için teşekkürler, ama bu yeni geçişler için ActivityOptionsCompat zorunludur – Sniper

İlgili konular