Android ObjectAnimator:缩放动画后填充

时间:2016-04-20 12:57:55

标签: android animation imageview scale

我使用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

1 个答案:

答案 0 :(得分:0)

乘以宽度和比例因子,如下所述:

getWidth not returning different value after scaling