2010-12-05 20 views
49

मैंने एंड्रॉइड कोड में कुछ खुदाई की, और अनिश्चित प्रगति पट्टी में उपयोग देखा। इस टैग के साथ अपने ही drawable बनाने के लिए कोशिश कर के बाद:एंड्रॉइड एनिमेट

<animated-rotate xmlns:android="http://schemas.android.com/apk/res/android" 
    android:drawable="@drawable/spinner_pia" 
    android:pivotX="50%" 
    android:pivotY="50%" 
    android:framesCount="12" 
    android:frameDuration="100" /> 

मैं एक त्रुटि मिलती है: "कोई संसाधन पहचानकर्ता विशेषता 'frameDuration' पैकेज 'Android' में के लिए मिला" - जिसका अर्थ है कि frameDuration एक निजी विशेषता है। क्या इस "एनिमेट-रोटेट" सुविधा का उपयोग करने का कोई तरीका है?

मेरा कार्य सिस्टम की डिफ़ॉल्ट अनिश्चित प्रगति पट्टी को प्रतिस्थापित करना है। मैं इसे जितना संभव हो उतना छोटा कोड करना चाहता हूं (यदि संभव हो तो कुछ विशेषताओं को बदलें)। ProgressBar दृश्य का उपयोग करना, की स्थापना:

android:indeterminateOnly="true" 
android:indeterminateBehavior="cycle" 
android:indeterminateDuration="3500" 
android:indeterminateDrawable="@drawable/pia_sivuvator" 

और बिंदु "@ drawable/pia_sivuvator" उस वस्तु को सुरुचिपूर्ण के रूप में मेरे काम कर के रूप में वे आ गए, लेकिन मैं उन निजी विशेषताओं पर अटक कर रहा हूँ है जाएगा।

सहायता?

+1

एक ही समस्या है। पैरामीटर को छोड़कर ('फ्रेम कार्ड और' फ्रेम अवधि ') बहुत मदद नहीं करता है। एनीमेशन काम करता है, लेकिन मेरे लिए अच्छा नहीं लग रहा है (एनीमेशन चिकनी नहीं है, जैसे कम फ्रेमरेट)। इस समस्या पर कोई समस्या उत्पन्न हुई http://code.google.com/p/android/issues/detail?id=19248 –

उत्तर

57

मैं एक ही मुद्दे में भाग गया। आप उन पैरामीटर (फ्रेम फ्रेम और फ्रेम अवधि) को बहिष्कृत कर सकते हैं, और यह आपके लिए काम कर सकता है। मैंने बस उन्हें छोड़कर और एनिमेटेड जुर्माना की कोशिश की, लेकिन जिस चौड़ाई/ऊंचाई को मैं सेट कर रहा था, उसका सम्मान नहीं किया जा रहा था, इसलिए मैंने इसे लागू करने के लिए एक सरल रोटेशन एनीमेशन और एक छवि दृश्य बनाया।

<?xml version="1.0" encoding="utf-8"?> 
<rotate 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:fromDegrees="0" 
    android:interpolator="@android:anim/linear_interpolator" 
    android:toDegrees="360" 
    android:pivotX="50%" 
    android:pivotY="50%" 
    android:duration="1000" 
    android:startOffset="0" 
/> 

तो फिर तुम सिर्फ अपने एनीमेशन, सेट दोहराने गिनती बढ़, और दृश्य से इसे शुरू

Animation rotation = AnimationUtils.loadAnimation(this, R.anim.clockwise_rotation); 
rotation.setRepeatCount(Animation.INFINITE); 
myView.startAnimation(rotation); 
+24

यदि आप चाहते हैं तो हार्ड कोड – pleerock

+0

के बजाय xml में 'android: repeatCount = "अनंत" का उपयोग करें फ्रेम का उपयोग करने के लिए काउंटर पैरामीटर देखें http://stackoverflow.com/questions/3760381/rotating-image-animation-list-or-animated-rotate-android/14996762#14996762 – vokilam

6

मैं नहीं जानता: यहाँ एनीमेशन फ़ाइल (res/anim/clockwise_rotation.xml) है निजी विशेषताओं के आसपास कैसे काम करें, मुझे एक ही समस्या है।

तरह से अगर आप ProgressBar की उन विशेषताओं को बदलना चाहते हैं द्वारा:

android:indeterminateOnly="true" 
android:indeterminateBehavior="cycle" 
android:indeterminateDuration="3500" 
android:indeterminateDrawable="@drawable/pia_sivuvator" 

आप शैलियाँ ढांचे का विस्तार मानक एंड्रॉयड एक एक ProgressBar शैली values/styles.xml फ़ाइल में परिभाषित करने के साथ आसानी से कर सकते हैं:

<style name="YourProgressBarStyle" parent="@android:style/Widget.ProgressBar"> 
     <item name="android:indeterminateDrawable">@drawable/progress_bar_indeterminate</item> 
</style> 

और फिर इसे xml लेआउट फ़ाइल में प्रगति पट्टी पर लागू करना।

... 
<ProgressBar 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    style="@style/YourProgressBarStyle"/> 
... 
5

मैंने इस ड्रॉबल एक्सएमएल का उपयोग करके इसे हल किया। हालांकि यह केवल Android के नए संस्करणों पर चिकनी हो रहा है:

<rotate xmlns:android="http://schemas.android.com/apk/res/android" 
    android:drawable="@drawable/spinner_pia" 
    android:fromDegrees="0" 
    android:pivotX="50%" 
    android:pivotY="50%" 
    android:toDegrees="1080" /> 
+0

क्या आप कृपया बता सकते हैं कि आप इस RotateDrawable से क्या करते हैं? http://stackoverflow.com/questions/5872257/how-do-i-use-rotatedrawable – rds

7

इसके बजाय मदद मिलेगी बनाने की रोटेशन एनीमेशन की सरल व्याख्या इस कोशिश है एक एनीमेशन (अधिक कोड आवश्यक, न केवल एक्सएमएल कॉन्फ़िगरेशन), layer-list का उपयोग करने योग्य संसाधन के रूप में करें। यह काफी दिलचस्प है कि layer-listanimated-rotate से अधिक तरल पदार्थ है।

<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
<item> 
    <rotate 
     android:drawable="@drawable/spinner_loading" 
     android:pivotX="50%" 
     android:pivotY="50%" 
     android:fromDegrees="0" 
     android:toDegrees="360"/> 
</item> 
</layer-list> 

तो निश्चित रूप से शैली में इसका इस्तेमाल के रूप में मारियो Lenci लिखा है:

<style name="YourProgressBarStyle" parent="@android:style/Widget.ProgressBar"> 
    <item name="android:indeterminateDrawable">@drawable/progress_bar_indeterminate</item> 
</style> 
+3

हाय, आप इसे कैसे घुमाते हैं? मेरे पास एक छवि दृश्य है और यह अभी भी एक खींचने योग्य दिखाता है ... thx –

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