2012-04-11 19 views
5

मेरे पास एक ऐप है जहां मैंने मानक गतिविधियों पर डिफ़ॉल्ट स्लाइड इन/आउट प्रभावों का उपयोग किया और कुछ विशिष्ट गतिविधियों पर फीका/आउट किया।फीड इन/आउट से एंड्रॉइड आईसीएस गतिविधि संक्रमण स्लाइड पर वापस

मैंने देखा है कि नया एंड्रॉइड 4.X (आईसीएस) एक अलग डिफ़ॉल्ट है, जो वास्तव में फीका/बाहर है।

मैं अपनी मानक गतिविधियों को मेरी स्लाइड इन/आउट प्रभाव पर कैसे परिभाषित कर सकता हूं?/बाहर प्रभाव फीका पुन: पेश करने के लिए मैं उपयोग कर रहा हूँ

@Override 
public void onCreate(Bundle savedInstanceState) 
{ 
    this.overridePendingTransition(0, android.R.anim.slide_in_left);     
    super.onCreate(savedInstanceState); 
} 

@Override 
public void onPause() 
{ 
    super.onPause(); 
    overridePendingTransition(android.R.anim.slide_out_right, 0); 
} 

:

@Override 
public void onCreate(Bundle savedInstanceState) 
{ 
    this.overridePendingTransition(0, android.R.anim.fade_in);     
    super.onCreate(savedInstanceState); 
} 

@Override 
public void onPause() 
{ 
    super.onPause(); 
    overridePendingTransition(android.R.anim.fade_in, 0); 
} 

लेकिन सफलतापूर्वक पुन: पेश करने में कामयाब नहीं किया है

मैं के साथ इसे परिभाषित करने की कोशिश कर रहा है यह।

इसके अलावा, मैं इस कोड का उपयोग कर क्रेट और ऑन पॉज़ पर उपयोग कर रहा हूं, क्या यह सही है? या इसे रखने के लिए एक बेहतर जगह है?

धन्यवाद

पुनश्च: मैं इस New Android 4.0 Screen Transitions Between Activities देखा है लेकिन अब उत्तर प्रदान किया गया है।

उत्तर

10

ओवरराइडपेंडिंग ट्रांसमिशन() को नई गतिविधि शुरू करने के तुरंत बाद बुलाया जाना है, इसलिए आप इसे प्रारंभिकता (इरादा) के बाद कॉल करेंगे, उदाहरण के लिए। डिफ़ॉल्ट बनाने के लिए आप एक कक्षा बना सकते हैं जो गतिविधि को बढ़ाता है और संक्रमण को ओवरराइड करने के लिए प्रारंभिकता, ऑनबैक() इत्यादि को ओवरराइड करता है। उदाहरण के लिए:

public class MyActivity extends Activity { 

@Override 
public void onBackPressed() { 
    super.onBackPressed(); 
    overridePendingTransition(R.anim.slide_in_transition,R.anim.slide_out_transition); 
} 

@Override 
public void startActivity(Intent intent) { 
    super.startActivity(intent); 
    overridePendingTransition(R.anim.slide_in_transition,R.anim.slide_out_transition); 
} 

@Override 
public void finish() { 
    super.finish(); 
    overridePendingTransition(R.anim.slide_in_transition,R.anim.slide_out_transition); 
} 



} 

फिर, बस के बजाय MyActivity गतिविधि को रोकने की गतिविधियों में विस्तार और बदलाव के सभी डिफ़ॉल्ट रूप से फिसलने की जानी चाहिए।

+0

डिफ़ॉल्ट संक्रमण slide_in_left और slide_out_right हैं। आपने अन्य नामों का उपयोग किया .. तो क्या आप उनके लिए एक्सएमएल परिभाषित कर सकते हैं? – neteinstein

+2

मैं आमतौर पर अपना खुद का परिभाषित करता हूं, लेकिन मुझे कोई कारण नहीं दिखता कि आप डिफ़ॉल्ट का उपयोग क्यों नहीं कर सकते हैं। – anakin78z

+0

+1 मैं डिफ़ॉल्ट को कैसे कॉल कर सकता हूं? क्या मुझे डिफ़ॉल्ट के लिए एक नया एक्सएमएल बनाने की ज़रूरत है? – Roylee