我使用ObjectAnimator对scaleX和scaleY动画有问题。Android ObjectAnimator:缩放后动画填充
在动画结束时,Drawable内部被调整大小,但不是ImageView边框的大小。
XML 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
+0
将您的动画应用于容器。 –
+1
我想我已经很好地解释了我的问题,“容器”是指ImageView的边框。 **动画之前:** avenger.getScaleX()= 1 avenger.getWidth()= 190 **后的动画:** avenger.getScaleX()= 0.5 avenger.getWidth() = 190 –