मेरे पास एक ImageView है और मैं इसे एक साधारण स्केल एनीमेशन करता हूं। बहुत मानक कोड।
माई स्केल_अप.एक्सएलएम:
<set xmlns:android="http://schemas.android.com/apk/res/android">
<scale android:fromXScale="1"
android:fromYScale="1"
android:toXScale="1.2"
android:toYScale="1.2"
android:duration="175"/>
</set>
मेरा एनीमेशन कोड:
Animation a = AnimationUtils.loadAnimation(this, R.anim.scale_up);
((ImageView) findViewById(R.id.circle_image)).startAnimation(a);
समस्या:
जब छवि तराजू यह केंद्र से पैमाने पर नहीं है, लेकिन ऊपरी बाएँ कोने से। दूसरे शब्द में, छवि के स्केल किए गए वर्जन में केंद्र के समान बिंदु नहीं है, लेकिन इसका शीर्ष-बाएं बिंदु समान है। यहां एक लिंक दिया गया है जो बताता है कि मेरा क्या मतलब है। पहली छवि यह है कि एनीमेशन कैसे स्केल करता है, और दूसरी छवि यह है कि मैं इसे कैसे स्केल करना चाहता हूं। इसे केंद्र बिंदु को समान रखना चाहिए। मैंने छवि पर गुरुत्वाकर्षण स्थापित करने की कोशिश की है, कंटेनर पर, बाएं या दाएं संरेखित करना, यह हमेशा समान होता है। मैं मुख्य स्क्रीन के लिए RelativeLayout का उपयोग कर रहा हूं और ImageView दूसरे RelativeLayout में स्थित है, लेकिन मैंने अन्य लेआउट की कोशिश की, कोई बदलाव नहीं हुआ।
pivotX
औरpivotY
आधाviewportWidth
औरviewportHeight
सटीक होना चाहिए।