2010-08-03 10 views
8

मेरे पास 2 ImageView है जो मैं स्क्रीन के शीर्ष से नीचे तक अनुवाद करता हूं। इन विचारों को एक्सएमएल से अवरुद्ध किया गया है और एनीमेशन जावा कोड से जोड़ा गया है। एनीमेशन पूरी तरह से काम करता है, लेकिन onClickListener मैंने जावा कोड में जोड़ा जो काम नहीं करता है। मैंने अनुवाद के बाद iamges उनके आने पर रहने के लिए एनीमेशन की fillAfter विशेषता का उपयोग किया, लेकिन इन छवियों को अब क्लिक करने योग्य नहीं है ... हालांकि, अनुवाद से पहले उनकी स्थिति क्लिक करने योग्य है ... मुझे तर्क नहीं दिख रहा है इस। क्या कोई मुझे इसके बारे में कुछ सलाह दे सकता है?अनुवादएनिएटेड छवि दृश्य एनीमेशन के बाद क्लिक करने योग्य नहीं है [एंड्रॉइड]

+0

ठीक है, यहाँ मेरा उत्तर मिला: http://stackoverflow.com/questions/2125694/एंड्रॉइड-बटन-नहीं-प्रतिक्रिया-बाद-एनीमेशन अब मुझे अपनी स्थिति सही तरीके से प्राप्त करने के लिए अपने पैराम को ठीक से सेट करने की आवश्यकता है ... – Sephy

+0

हालांकि, यह setFillAfter के साथ संगत प्रतीत नहीं होता है। मैं इसे काम करने के लिए इसे हटाने के लिए जोड़ता हूं। – Sephy

+0

मुझे यह समस्या थी, और मैंने कुछ शोध के बाद इसे हल किया। [यहाँ आप एक जवाब पा सकते हैं] [1] [1]: http://stackoverflow.com/questions/18333269/how-to-set-button-clickable-while-animating-on -android/18509197 # 18509197 – SteBra

उत्तर

14

ऐसा इसलिए है क्योंकि एनिमेशन केवल विजेट के चित्र को प्रभावित करता है। हालांकि, असली स्थान प्रभावित नहीं है - यह अभी भी पिछले एक में है-।

इस समस्या को दूर करने के लिए, आप मैन्युअल रूप से एक एनीमेशन श्रोता स्थापित करके imageView के लेआउट पैरामीटर अपडेट करना इस प्रकार की जरूरत है:

Animation.setAnimationListener(new AnimationListener() { 
     public void onAnimationStart(Animation arg0) { 

     } 

     public void onAnimationRepeat(Animation arg0) { 
      //TODO Auto-generated method stub 
     } 

     public void onAnimationEnd(Animation arg0) { 
      android.widget.LinearLayout.LayoutParams params = new LayoutParams(
      android.widget.LinearLayout.LayoutParams.FILL_PARENT, 
      android.widget.LinearLayout.LayoutParams.WRAP_CONTENT); 
      params.topMargin = addLocationButton.getTop()-100; 

      ImageView.setLayoutParams(params); 
     } 
     }); 
+1

कोई अच्छा नहीं, क्योंकि एनीमेशन में एनीमेशन के बाद, जब छवि को "सेटलेआउट पैराम्स (पैराम्स) से स्थिति मिलती है;" तो मैं एक झिलमिलाहट देखता हूँ। मैं जोड़ने कि संपत्ति toYDelta – oscaroxy

+4

झिलमिलाहट को निकालने के लिए का प्रतिशत से topMargin आप \t \t \t \t \t \t \t animation.reset उपयोग कर सकते हैं() स्थापित करने के लिए मुश्किल है, .clearAnimation(); – slott

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