2012-04-18 10 views
11

मैं अपने अनुप्रयोग में छवि को घुमाने के लिए जा रहा हूँ। सभी रोटेशन के साथ ठीक काम करता है। लेकिन जब मैं रोटेशन एनीमेशन छवि खत्म wil अपने पिछले स्थिति में लौटने मिलता है। मैं चाहता हूं कि उस छवि को उस घुमावदार राज्य में रहना है और इसे अपने असली राज्य में वापस नहीं लेना है।एंड्रॉइड: एनीमेशन खत्म करने के बाद एनीमेशन को अपने असली स्थिति में वापस ले जाएं?

तो यह कैसे संभव बनाने के लिए? छवि को घुमाने के लिए मैं नीचे दिए गए कोड का उपयोग कर रहा:

<?xml version="1.0" encoding="utf-8"?> 

<rotate xmlns:android="http://schemas.android.com/apk/res/android" 
    android:pivotX="50%" 
    android:pivotY="50%" 
    android:fromDegrees="0" 
    android:toDegrees="30" 
    android:duration="2000"> 

</rotate> 

और तरह ImgeView पर लागू:

myImageView.startAnimation(rotateRight); 

तो, यह के बारे में मेरी मदद करो।

उत्तर

24

देखें How can I animate a view in Android and have it stay in the new position/size?

<set टैग के अंदर, का उपयोग

android:fillAfter="true" 
android:fillEnabled="true" 

सामान्य में, एनीमेशन देखें की वास्तविक गुण में परिवर्तन नहीं करता, यह केवल यह एनिमेट। यदि आप वास्तविक गुणों को बदलना चाहते हैं, तो एनीमेशन लिस्टर का उपयोग करें और एनीमेशन एंड पर सुनें और बदलाव स्वयं करें।

+0

ठीक है मुझे इसे आज़माएं। –

+0

मुझे लगता है कि यह काम है। –

+1

इस विशेषता की आवश्यकता नहीं है: एंड्रॉइड: fillEnabled = "true"। इस विशेषता के लिए यह आवश्यक है: एंड्रॉइड: भरें इससे पहले। यह देखो: https://developer.android.com/reference/android/view/animation/Animation.html#attr_android:fillAfter। – Arash

2

पहले एनीमेशन का एक उदाहरण

Animation anim = AnimationUtils.loadAnimation(context, R.anim.animation); 

का उपयोग कर पाने "R.anim.animation" जो कुछ भी अपने एनीमेशन है को दर्शाता है।

का उपयोग कर इस एनीमेशन पर एक एनीमेशन श्रोता डाल दिया।

anim.setAnimationListener 

एनीमेशन लिस्टनर की एनीमेशन अपूर्ण() विधि में दिखाई देने वाला दृश्य बनाएं।

यह काम करना चाहिए।

2

setFillAfter और setFillEnable जवाब आप की जरूरत है।

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