2014-11-26 6 views
8

तो में एक करने के लिए एनीमेशन प्रभाव (प्रोग्राम के रूप में जोड़ा) popupWindow जोड़ने, मैं एक प्रोग्राम के रूप में PopupWindow जो इस तरह दिखता है जोड़ा है:प्रोग्राम एंड्रॉयड

 dialog = new PopupWindow(context); 
     dialog.setContentView(ll); 
     dialog.showAtLocation(view, Gravity.LEFT | Gravity.TOP, -70, 0); 
     dialog.setWidth(w); 
     dialog.setHeight(h - 50); 
     dialog.setOutsideTouchable(true); 
     //The dialog.update is somewhere else, I didn't bother adding it too as it is not important for this matter (I guess) 

मुझे क्या करना चाहते हैं एनीमेशन प्रभाव के कुछ प्रकार है, जैसे कि बटन दबाकर मैं पॉप करता हूं, इसलिए पॉपअप प्रकट होता है। (यह सिर्फ एक उदाहरण है, मैं बस किसी भी प्रकार की एनीमेशन चाहता हूं)।

दस्तावेज़ीकरण ठीक रहेगा, जब तक कि यह एक्सएमएल आधारित नहीं है (मैंने पाया है कि पहले से ही मुझे वास्तव में मदद नहीं कर रहा है)।

यदि अन्य विवरण की आवश्यकता है, तो मैं प्रश्न पर टिप्पणी या संपादन करूंगा।

उत्तर

14

तो, मैं इस समस्या से निपटने के लिए कामयाब रहे।

एनीमेशन प्रभाव प्राप्त करने के लिए तीन सरल कदम हैं।

पहला: एनीमेशन वाले दो एक्सएमएल बनाएं। मेरे मामले में वे दोनों नीचे दिए गए थे। animation_on.xml

<scale xmlns:android="http://schemas.android.com/apk/res/android" 
    android:toXScale="1.0"    
    android:fromXScale="0.0"    

    android:toYScale="1.0" 
    android:fromYScale="0.0" 

    android:pivotX="0%" 
    android:pivotY="50%" 


    android:startOffset="100" 
    android:duration="300" /> 

animation_off.xml

<scale xmlns:android="http://schemas.android.com/apk/res/android" 
    android:toXScale="0.0"    
    android:fromXScale="1.0"    

    android:toYScale="0.0" 
    android:fromYScale="1.0" 

    android:pivotX="0%" 
    android:pivotY="50%" 


    android:startOffset="100" 
    android:duration="300" /> 

दूसरा:

<style name="animationName" parent="android:Animation"> 
    <item name="android:windowEnterAnimation">@anim/animation_on</item> 
    <item name="android:windowExitAnimation">@anim/animation_off</item> 
</style> 

तीसरा:

dialog = new PopupWindow(context); 
// ....other code, whatever you want to do with your popupWindow (named dialog in our case here) 
dialog.setAnimationStyle(R.style.animationName); 

अगर किसी को भी इस के साथ मदद की जरूरत है, comment.I छोड़ जवाब देंगे मैं जितनी जल्दी कर सकता हूं।

9

एनीमेशन शैली सेट करने के लिए यहां कोड है। सुनिश्चित करें कि आप showAnLocation कॉल करने से पहले setAnimationStyle विधि को कॉल करते हैं।

dialog = new PopupWindow(context); 
dialog.setAnimationStyle(android.R.style.Animation_Dialog); 

आशा इस मदद करता है।

संदर्भ: setAnimationStyle

+0

अच्छा, क्षमा करें, लेकिन यह वास्तव में मेरी मदद नहीं करता था। मुझे जो चाहिए वह एक्सएमएल तर्क था। किसी भी तरह, मुझे पता चला। बाद में उत्तर पोस्ट करने वाला, अभी के रूप में मैं एक और समस्या के साथ उबाऊ हूं। – Vlad

+0

@Vlad क्या आप मुझे बता सकते हैं क्यों? क्या यह काम नहीं किया? – SLee

+0

नहीं, यह नहीं है कि यह काम नहीं करता है, बस यह है कि आपका जवाब वह नहीं है जिसे मैं ढूंढ रहा था। मुझे एक्सएमएल सामान की आवश्यकता थी। बिंदु पर और अधिक होने के लिए: दो एनिमेशन xmls (एक फीका-इन प्रभाव और दूसरा फीका-आउट प्रभाव होने के कारण) और मुझे उन दो एक्सएमएल के साथ एक शैली (मूल्यों -> शैलियों में) बनाने की आवश्यकता है। यही मेरी ज़रूरत है। हालांकि, मैं आपको यूपी देने जा रहा हूं, जैसा कि आपने तत्काल उत्तर दिया था और मुझे पूरा यकीन है कि अगर आपने टिप्पणियों में पूछा तो आप मेरी मदद करेंगे। – Vlad

संबंधित मुद्दे