2013-02-20 10 views
10

मैं 2 टुकड़ों के बीच फ्लिप एनीमेशन बनाने का तरीका जानने का प्रयास कर रहा हूं।खंडों के बीच कस्टम फ्लिप एनीमेशन एंड्रॉइड समर्थन पैकेज

मैंने CardFlip प्रशिक्षण के रूप में प्रशिक्षण की कोशिश की है, लेकिन ऐसा लगता है कि यह हासिल करने में सक्षम नहीं है। मैं एंड्रॉइड समर्थन पैकेज का उपयोग कर रहा हूं और इसे एनीमेशन के बीच सेट कर रहा हूं, लेकिन सफल नहीं हूं।

खंड के बीच फ़्लिपिंग एनिमेशन कैसे कार्यान्वित करें?

यहां मार्गदर्शिका से बनाया गया पहला 2 एक्सएमएल है, शायद आप देख सकते हैं कि कुछ गलत कर रहा है या नहीं। screen_flip_left_in.xml:

<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android" > 

    <!-- Before rotating, immediately set the alpha to 0. --> 
    <alpha 
     android:valueFrom="1.0" 
     android:valueTo="0.0" 
     android:propertyName="alpha" 
     android:duration="0" /> 

    <!-- Rotate. --> 
    <rotate 
     android:valueFrom="-180" 
     android:valueTo="0" 
     android:propertyName="rotationY" 
     android:interpolator="@android:anim/accelerate_decelerate_interpolator" 
     android:duration="@integer/card_flip_time_full"/> 

    <!-- Half-way through the rotation (see startOffset), set the alpha to 1. --> 
    <alpha 
     android:valueFrom="0.0" 
     android:valueTo="1.0" 
     android:propertyName="alpha" 
     android:startOffset="@integer/card_flip_time_half" 
     android:duration="1" /> 
</set> 

screen_flip_left_out.xml:

<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android" > 
     <!-- Rotate. --> 
    <rotate 
     android:valueFrom="0" 
     android:valueTo="180" 
     android:propertyName="rotationY" 
     android:interpolator="@android:anim/accelerate_decelerate_interpolator" 
     android:duration="@integer/card_flip_time_full" /> 

    <!-- Half-way through the rotation (see startOffset), set the alpha to 0. --> 
    <alpha 
     android:valueFrom="1.0" 
     android:valueTo="0.0" 
     android:propertyName="alpha" 
     android:startOffset="@integer/card_flip_time_half" 
     android:duration="1" /> 

</set> 
+0

क्या काम नहीं कर रहा है? विशिष्ट कोड क्रैशिंग है? अधिक जानकारी कृपया। – QVDev

+0

@QVDev सबसे पहले, मैं गाइड से ऑब्जेक्टिनेटर का उपयोग नहीं कर सकता क्योंकि यह एंड्रॉइड समर्थन पैकेज में उपलब्ध नहीं है, इसलिए जब तक मैं एनीमेशन में स्विच नहीं करता तब तक कोड क्रैश हो जाता है। और फिर, मुझे कोई फ्लिप प्रभाव नहीं मिलता है। मुझे यकीन नहीं है कि यह इसलिए है क्योंकि मैं वहां एक अलग इंटरपोलेटर तत्व का उपयोग करता हूं; मैं इस एंड्रॉइड का उपयोग करता हूं: interpolator = "@ android: anim/accelerate_decelerate_interpolator" क्योंकि मुझे एपीआई स्तर 8 का समर्थन करने की आवश्यकता है और मार्गदर्शिका में से एक एपीआई 11 ऊपर के लिए है। – irobotxxx

+0

तो जब आप इसे ट्विन में बदलते हैं तो यह सही काम करता है? यह वास्तव में एपीआई स्तर की वजह से है। शायद पुराने एपीआई के लिए ट्विन का उपयोग करें और नए एपीआई के लिए फ्लिप करें? या कस्टम फ्लिप एनीमेशन – QVDev

उत्तर

1

एंड्रॉयड: प्रॉपर्टी ObjectAnimator (Honeycomb +) एनिमेशन के लिए ही है, जिंजरब्रेड से एनिमेशन देखने नहीं। एक कार्ड फ्लिप एनीमेशन केवल हनीकॉम्ब एनिमेटर एपीआई का उपयोग करके संभव है। मैंने विखंडन संक्रमण के लिए NineOldAndroids से एनिमेटर एपिस का उपयोग करने के लिए समर्थन लाइब्रेरी का एक कांटा बनाया। मेरे github project की एनिमेटर-संक्रमण शाखा का उपयोग करें। एक बार जब आप संशोधित समर्थन लाइब्रेरी को एनिमेटर xml बनाने के लिए http://developer.android.com/training/animation/cardflip.html पर देखते हैं।

+0

ग्रहण में भी अपनी परियोजना आयात कर सकते हैं। एक पंक्ति में कई घंटों (4 घंटे मुकाबला) करने की कोशिश कर रहा है - कोई भाग्य नहीं। हर बार परियोजना में कुछ गलत या चूक जाता है। इसके अलावा आपकी प्रोजेक्ट एक्शनबारशेलॉक चाहता है जो स्वयं-समर्थन -4 का उपयोग करती है। क्या आप कृपया supportv4 lib (जैसे v4/bin में) के अपने संस्करण का एक संकलित जार प्रदान कर सकते हैं? – Stan

-1

यह सही नहीं है! "एनिमेटर xml बनाने के लिए http://developer.android.com/training/animation/cardflip.html पर संशोधित समर्थन लाइब्रेरी देखने के बाद।"

यह वास्तव में v4 लाइब्रेरी का समर्थन नहीं करता है।

0

आपके एक्सएमएल में ऑब्जेक्ट के अंदर मूल्य होना चाहिए एनीमेटर टैग, अल्फा के अंदर नहीं और टैग घुमाएं। ऑब्जेक्टएनिमीटर में संपत्ति नाम है जिसमें आपने पहले से ही संपत्ति मान निर्दिष्ट कर दिए हैं।

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