2011-09-17 15 views
9

के साथ एंड्रॉइड में एक छवि के केंद्र के माध्यम से ज़ूम इन एनिमेट करें मैं एंड्रॉइड के साथ कुछ सरल छवि ज़ूमिंग और पैनिंग करने की कोशिश कर रहा हूं और मेरे पास दो सरल प्रश्न हैं। सबसे पहले, जब मैं स्केल का उपयोग करके एनीमेशन को कॉल करता हूं, तो यह मूल के रूप में छवि के ऊपरी बाएं कोने का उपयोग करके ज़ूम करता है लेकिन मैं इसे छवि के केंद्र से ज़ूम करना चाहता हूं। दूसरा सवाल यह है कि एनीमेशन पूरा हो जाने पर यह छवि को मूल स्थिति में रीसेट करता है और मैं इसे अंतिम स्थिति में रहना चाहता हूं।एक्सएमएल

यहाँ एक्सएमएल मैं पैमाने के लिए है:

<scale android:fromXScale="1.0" 
    android:fromYScale="1.0" 
    android:toXScale="2.0" 
    android:toYScale="2.0" 
    android:detachWallpaper="true" 
    android:duration="3000"></scale> 

और मेरे कोड में:

a = AnimationUtils.loadAnimation(this, R.anim.set); 
a.reset(); 
ImageView iv = (ImageView) findViewById(R.id.imageView1); 
iv.clearAnimation(); 
iv.startAnimation(a); 

किसी भी मदद की सराहना की होगी! :-)

उत्तर

25

केंद्र से एक छवि स्केलिंग के लिए आप pivotX और pivotY

स्थापित करने के लिए केंद्र से स्केलिंग और स्केलिंग के बाद राज्य बनाए रखने के लिए इस कोड की कोशिश

<scale xmlns:android="http://schemas.android.com/apk/res/android" 
    android:fromXScale="1" 
    android:toXScale="5" 
    android:fromYScale="1" 
    android:toYScale="5" 
    android:pivotX="50%" 
    android:pivotY="50%" 
    android:duration="1000" 
    android:fillAfter="true"> 
</scale> 

धन्यवाद है ...

+0

धन्यवाद! यह केंद्र से ज़ूम तय! – Mlove

+0

मुझे वास्तव में भरने वाला फ़ील्ड पता चला जो मैं चाहता हूं। यह काम नहीं किया जब मैंने इसे किसी कारण से एक्सएमएल में जोड़ा लेकिन जब मैंने मैन्युअल रूप से कोड में किया तो यह ठीक काम करता था। – Mlove

+0

@Mlove क्या आप कृपया अपना कोड पोस्ट कर सकते हैं कि भरने का उपयोग कैसे करें मैन्युअल रूप से घंटे के लिए सिर पर टक्कर लगी है – surhidamatya