2011-02-23 6 views
33

के लिए एनीमेशन में फीका का उपयोग करते हुए मुझे लगता है कि शुरू में अदृश्य है एक View करना चाहते हैं और जब मैं एक बटन दबाते हैं, यह एनीमेशन में एक फीका के साथ दिखाई देने लगता है। मैं लुप्तप्राय प्रभाव के लिए AlphaAnimation का उपयोग कर रहा हूं। समस्या यह है कि अगर मैं दृश्य को अदृश्य बना देता हूं तो एनीमेशन नहीं देखा जा सकता है।एक दृश्य

धन्यवाद एक बहुत,

Gratzi

उत्तर

25

एनीमेशन के लिए एक AnimationListener प्रदान करें और जैसे ही एनीमेशन शुरू होता है दृश्य सामने प्रस्तुत करें।

http://developer.android.com/reference/android/view/animation/Animation.AnimationListener.html

+3

धन्यवाद एक बहुत, आदमी! समस्या यह है कि यदि दृश्य अदृश्य है तो एप्लिकेशन निष्पादित नहीं किया जाता है, इसलिए ऑनस्टार्टएनीमेशन विधि का उपयोग नहीं किया जा सका। लेकिन मैंने एनीमेशन शुरू करने से पहले, बटन के श्रोता में दिखाई देने वाला दृश्य सेट किया है, और मैं ऑनएंडएनीमेशन में दृश्य को अदृश्य होने के लिए सेट कर रहा हूं। – Gratzi

+0

मुझे समझ नहीं आता क्यों तुम onEndAnimation में अदृश्य करने के लिए एनीमेशन निर्धारित करते हैं, अपने प्रारंभिक सवाल में आप कहते हैं कि आप इसे में फीका करना चाहते हैं कि और दिखाई देने लगते हैं, तुम क्यों onEndAnimation में अदृश्य करने के लिए सेट? – Ixx

125

मान लीजिए आप एक ImageView नामित imageView और एक एनीमेशन फ़ाइल your_fade_in_anim.xml अपने रेस के अंदर है \ anim \ फ़ोल्डर:

ImageView imageView = (ImageView) findViewById(R.id.imageView); 
Animation fadeInAnimation = AnimationUtils.loadAnimation(this, R.anim.your_fade_in_anim); 
// Now Set your animation 
imageView.startAnimation(fadeInAnimation); 

आपका एक्सएमएल

<?xml version="1.0" encoding="UTF-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android"> 
    <alpha 
     android:fromAlpha="0.0" 
     android:toAlpha="1.0" 
     android:interpolator="@android:anim/accelerate_interpolator" 
     android:duration="[duration (in milliseconds)]" 
     android:repeatCount="infinite" /> 
</set> 

कोष्ठक बदलें आपकी वास्तविक अवधि के साथ।

+10

यह प्रारंभिक रूप से अदृश्य होने के दृश्य की समस्या को कैसे हल करता है? – Ixx

+4

इस जवाब को इतने सारे अपवॉट क्यों मिला है? यह सवाल का जवाब भी नहीं देता है। –

+47

यह शरीर में इस सवाल का जवाब नहीं है, इसके बारे में सवाल का जवाब है, जो सवाल का शीर्षक है "मैं एक दृश्य में फीका करना"। इसके कारण, मुझे कल्पना है कि एनिमेशन को कैसे करना है (जैसा मैंने किया) के बारे में बहुत से लोगों को यह जवाब मिल रहा है। कड़ाई से जवाब नहीं है, यह निश्चित रूप से उपयोगी है। – karl

3
इसके बजाय अनंत दोहराने की संख्या और छिपने की

/अपने दृश्य को देखने, मैं सिर्फ एनीमेशन दोहराना नहीं करने के लिए और शुरू में अल्फ़ा चैनल अधिकतम करने के लिए सेट के साथ आरंभ करें। फिर आप इसका उपयोग कर सकते हैं:

<?xml version="1.0" encoding="UTF-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android"> 
    <alpha 
     android:fromAlpha="0.0" 
     android:toAlpha="1.0" 
     android:interpolator="@android:anim/accelerate_interpolator" 
     android:duration="[duration (in milliseconds)]" 
     android:repeatCount="0" /> 
</set> 

और आप कर चुके हैं। श्रोता, छिपाने या दिखाने की कोई ज़रूरत नहीं है। बस इतना आसान है।