मैं एक गतिविधि शुरू कर रहा हूं और इसके लिए एक अल्फ़ा फ़ेड-इन startActivity()
और फ़ेड-आउट होगा finish()
। मैं एंड्रॉइड एसडीके में इसके बारे में कैसे जा सकता हूं?
मैं एक गतिविधि शुरू कर रहा हूं और इसके लिए एक अल्फ़ा फ़ेड-इन startActivity()
और फ़ेड-आउट होगा finish()
। मैं एंड्रॉइड एसडीके में इसके बारे में कैसे जा सकता हूं?
जवाबों:
उसी स्टेटमेंट में जिसमें आप फिनिश निष्पादित करते हैं (), वहां भी अपने एनीमेशन को निष्पादित करें। फिर, नई गतिविधि में, एक और एनीमेशन चलाएं। इस कोड को देखें:
fadein.xml
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:fillAfter="true">
<alpha android:fromAlpha="1.0"
android:toAlpha="0.0"
android:duration="500"/> //Time in milliseconds
</set>
अपने फिनिश-क्लास में
private void finishTask() {
if("blabbla".equals("blablabla"){
finish();
runFadeInAnimation();
}
}
private void runFadeInAnimation() {
Animation a = AnimationUtils.loadAnimation(this, R.anim.fadein);
a.reset();
LinearLayout ll = (LinearLayout) findViewById(R.id.yourviewhere);
ll.clearAnimation();
ll.startAnimation(a);
}
fadeout.xml
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:fillAfter="true">
<alpha android:fromAlpha="0.0"
android:toAlpha="1.0"
android:duration="500"/>
</set>
अपने नए एक्टिविटी-क्लास में आप रनफ़ेडएनिमेशन जैसा एक परिचित तरीका बनाते हैं जो मैंने लिखा था और फिर आप इसे ऑनक्रिकेट में चलाते हैं और संसाधनों आईडी को फीका करने के लिए बदलना न भूलें।
android:duration="@android:integer/config_shortAnimTime"
runFadeAnimation()
एपीआई स्तर 5 से शुरू होकर आप एक स्पष्ट संक्रमण एनीमेशन को निर्दिष्ट करने के लिए तुरंत ओवरराइडिंगट्रांसशन कॉल कर सकते हैं:
startActivity();
overridePendingTransition(R.anim.hold, R.anim.fade_in);
या
finish();
overridePendingTransition(R.anim.hold, R.anim.fade_out);
: Android थीम देखें http://developer.android.com/guide/topics/ui/themes.html ।
Themes.xml के तहत वहाँ होना चाहिए android:windowAnimationStyle
जहाँ आप style.xml में शैली की घोषणा देख सकते हैं ।
उदाहरण कार्यान्वयन:
<style name="AppTheme" parent="...">
...
<item name="android:windowAnimationStyle">@style/WindowAnimationStyle</item>
</style>
<style name="WindowAnimationStyle">
<item name="android:windowEnterAnimation">@android:anim/fade_in</item>
<item name="android:windowExitAnimation">@android:anim/fade_out</item>
</style>
@android:anim/fade_in
जावा कोड से कैसे पहुंचेंगे?
उपयोग overridePendingTransition
startActivity();
overridePendingTransition(R.anim.fadein, R.anim.fadeout);
fadein.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator"
android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="500" />
</set>
fadeout.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/anticipate_interpolator"
android:fromAlpha="1.0" android:toAlpha="0.0" android:duration="500" />
</set>
FadeIn और fadeOut के लिए , केवल अपने सुपर गतिविधि वर्ग में super.onCreate (saveInstanceState) के बाद इसे जोड़ें । आपको कुछ और बनाने की आवश्यकता नहीं है (कोई एक्सएमएल, कोई एनीमेशन फ़ोल्डर, कोई अतिरिक्त फ़ंक्शन नहीं)।
overridePendingTransition(R.anim.abc_fade_in,R.anim.abc_fade_out);
यदि आप हमेशा गतिविधि के लिए एक ही संक्रमण एनीमेशन चाहते हैं
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
@Override
protected void onPause() {
super.onPause();
if (isFinishing()) {
overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
}
}
मैं style.xml समाधान का उपयोग करना चाहता था, लेकिन यह मेरे लिए गतिविधियों के साथ काम नहीं करता था। पता चलता है कि उपयोग करने के बजाय android:windowEnterAnimation
और android:windowExitAnimation
, मुझे इस तरह की गतिविधि एनिमेशन का उपयोग करने की आवश्यकता है:
<style name="ActivityAnimation.Vertical" parent="">
<item name="android:activityOpenEnterAnimation">@anim/enter_from_bottom</item>
<item name="android:activityOpenExitAnimation">@anim/exit_to_bottom</item>
<item name="android:activityCloseEnterAnimation">@anim/enter_from_bottom</item>
<item name="android:activityCloseExitAnimation">@anim/exit_to_bottom</item>
<item name="android:windowEnterAnimation">@anim/enter_from_bottom</item>
<item name="android:windowExitAnimation">@anim/exit_to_bottom</item>
</style>
// CREATE anim
// CREATE animation,animation2 xml // animation like fade out
Intent myIntent1 = new Intent(getApplicationContext(), Attend.class);
Bundle bndlanimation1 = ActivityOptions.makeCustomAnimation(getApplicationContext(),
R.anim.animation, R.anim.animation2).toBundle();
tartActivity(myIntent1, bndlanimation1);
अधिकांश उत्तर बहुत सही हैं, लेकिन उनमें से कुछ को हटा दिया गया है जैसे कि R.anim.hold का उपयोग करना और उनमें से कुछ प्रक्रिया को विस्तृत करना है।
तो, आप उपयोग कर सकते हैं:
startActivity(intent);
overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);