ฉันมี ImageView และฉันสร้างแอนิเมชั่นสเกลง่ายๆ รหัสมาตรฐานมาก
scale_up.xml ของฉัน:
<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
เป็นค่าที่แน่นอน