我使用ObjectAnimator时遇到了scaleX和scaleY动画的问题。
在动画结束时,Drawable内部的大小调整,但不是ImageView边框的大小。
我的问题架构:click here
XML ImageView代码
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/avenger"
android:background="@null"
android:id="@+id/vaisseau"
android:adjustViewBounds="true"
android:layout_above="@+id/santeBouclier"
android:layout_centerHorizontal="true" />
动画代码:
ImageView avenger = (ImageView)this.jeu.findViewById(R.id.vaisseau);
AnimatorSet resizeAvenger = new AnimatorSet();
ObjectAnimator animResizeX = ObjectAnimator.ofFloat(avenger, "scaleX", 1f, 0.3f);
animResizeX.setDuration(4000);
ObjectAnimator animResizeY = ObjectAnimator.ofFloat(avenger, "scaleY", 1f, 0.3f);
animResizeY.setDuration(4000);
resizeAvenger.playTogether(animResizeX, animResizeY);
resizeAvenger.start();
我认为我的问题在这里:
在动画之前:
avenger.getScaleX()= 1
avenger.getWidth()= 190
动画结束后:
avenger.getScaleX()= 0.3
avenger.getWidth()= 190