将View动画直接应用于Drawable而非整个View

时间:2018-12-19 19:33:47

标签: java android imageview android-animation android-drawable

我有一个动画,单击该动画可以使ImageView弹跳。

<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/bounce_interpolator">
    <scale
        android:duration="500"
        android:fromXScale="1.5"
        android:fromYScale="1.5"
        android:pivotX="50%"
        android:pivotY="50%"
        android:toXScale="1.0"
        android:toYScale="1.0" />
</set>

然后我像这样应用它。

view.startAnimation(
    AnimationUtils.loadAnimation(view.getContext(), R.anim.bounce));

它工作得很好,但是问题在于动画不仅会影响ImageView内绘制的图像,还会影响其背景。发生动画时,其背景会放大并超出视图范围,并使其旁边的其他视图重叠。有没有一种方法可以将动画仅应用于Drawable内的ImageView,以免影响视图背景?

(PS:如果这个问题已经回答了,那么请把它标记为重复。我已经搜索过,但是找不到与我所寻找的答案相符的答案。)

1 个答案:

答案 0 :(得分:1)

我不确定是否可以做到。但是,作为解决方法,您可以将一个ImageView放在另一个之上。将背景设置为下面的ImageView,并将上面ImageView的背景设置为透明。现在,将Drawable设置为顶部的ImageView,并为该ImageView设置动画。