11

मेरे पास 2 गतिविधियां हैं, और मैं दो गतिविधियों के बीच एक एनिमेटेड संक्रमण बनाना चाहता हूं जैसे कि दोनों गतिविधियों के विचार स्लाइड होते हैं जैसे कि दूसरी गतिविधि ऊपर की गतिविधि को ऊपर की ओर दबा रही है। मेरी पहली गतिविधि में मैं का उपयोग करें:overridePendingTransition दूसरी गतिविधि को बहुत तेज़ी से दिखाता है

Intent iSecondActivity = new Intent(FirstActivity.this,SecondActivity.class); 
FirstActivity.this.startActivity(iSecondActivity); 
FirstActivity.this.overridePendingTransition(R.anim.slide, R.anim.slide2); 

और मेरे slide.xml की तरह दिखता है:

<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android" 
    android:interpolator="@android:anim/accelerate_interpolator"> 
    <translate 
     android:interpolator="@android:anim/decelerate_interpolator" 
     android:fromYDelta="0" 
     android:toYDelta="-100%p" 
     android:duration="2000" 
    /> 
</set> 

और मेरे slide2.xml लगता है:

<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android" 
    android:interpolator="@android:anim/accelerate_interpolator"> 
    <translate 
     android:interpolator="@android:anim/decelerate_interpolator" 
     android:fromYDelta="100%p" 
     android:toYDelta="0" 
     android:duration="2000" 
    /> 
</set> 

हालांकि, समस्या यह है कि है जब "स्टार्ट एक्टिविटी" कहा जाता है, तो दूसरी गतिविधि का दृश्य पहले से ही प्रस्तुत किया जाता है जबकि संक्रमण बस स्लाइडिंग शुरू होता है। मैं पहली गतिविधि के दृश्य को स्लाइड करना चाहता हूं ... लेकिन इसके बजाय मैं दूसरी गतिविधि के दृश्य को देख रहा हूं (पहली गतिविधि के दृश्य पर प्रस्तुत) स्लाइड अप करें।

दूसरी समस्या यह है कि मैं प्रतिस्थापन दृश्य को पहली गतिविधि के दृष्टिकोण के रूप में देख रहा हूं। मैं प्रतिस्थापन दृश्य को दूसरी गतिविधि के दृश्य के रूप में देखना चाहता हूं जो ऊपर की ओर बढ़ रहा है।

समझाना मुश्किल है, इसलिए कृपया मुझे बताएं कि क्या मैं कुछ और विस्तार से समझा सकता हूं। किसी भी भ्रम के लिए क्षमा चाहते हैं, और इसे पढ़ने के लिए धन्यवाद।

पीएस मैं textviews का उपयोग कर रहा हूँ ... मुझे लगता है कि बहुत जल्दी renders? मैं मोटोरोला रेजर का भी उपयोग कर रहा हूं, यह नहीं कि इससे कोई फर्क नहीं पड़ता।

उत्तर

9

कभी नहीं, यह एक गूंगा त्रुटि थी - मुझे समझ में नहीं आया कि "एनीमेशन दर्ज करना" बनाम "एनीमेशन एनीमेशन" बनाम प्रलेखन क्या है। मैं बदलकर xmls स्वैप करने के लिए की जरूरत है:

FirstActivity.this.overridePendingTransition(R.anim.slide, R.anim.slide2); 

में
FirstActivity.this.overridePendingTransition(R.anim.slide2, R.anim.slide); 
+0

इसके बजाय एनीमेटर का उपयोग करने का कोई तरीका है? –

+0

मुझे भी एक ही समस्या का सामना करना पड़ा, लेकिन आपके उत्तर से हल किया गया, लेकिन यह बहुत अजीब है। वैसे भी, धन्यवाद –

6

सिर्फ अपने slide2.xml में इन्हें जोड़ने:

android:startOffset="2000" 

इस तरह से 2 गतिविधि के लिए एनीमेशन केवल सही अपने 1 गतिविधि के एनीमेशन के बाद शुरू होगा पूरा हो गया है।

+0

क्षमा करें, मैं अपने प्रश्न पर स्पष्ट नहीं था। मैंने सोचा था कि समस्या बहुत जल्दी प्रतिपादन देखने को देखा गया था। लेकिन यह पता चला कि मुझे समझ में नहीं आया कि "ओवरराइड पार्टिंग ट्रांजिशन" के लिए कॉल में "एनीमेशन दर्ज करना" पैरामीटर का क्या अर्थ है। –

+0

हालांकि, मुझे नहीं पता था कि आप एनीमेशन में देरी कर सकते हैं। यह बहुत उपयोगी है। +1 –