首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ObjectAnimator让imageview消失

ObjectAnimator让imageview消失
EN

Stack Overflow用户
提问于 2020-05-07 01:59:59
回答 1查看 127关注 0票数 0

我在试着做一个摇晃的动画。当我用XML做这件事时,它工作得很好,如下所示:

代码语言:javascript
复制
<set xmlns:android="http://schemas.android.com/apk/res/android">
 <rotate
     android:duration="50"
     android:fromDegrees="-0.02"
     android:pivotX="50%"
     android:pivotY="50%"
     android:repeatCount="30"
     android:repeatMode="reverse"
     android:interpolator="@android:anim/linear_interpolator"
     android:toDegrees="0.02" />
 <translate
     android:fromXDelta="-0.02"
     android:toXDelta="0.02"
     android:repeatCount="30"
     android:repeatMode="reverse"
     android:interpolator="@android:anim/linear_interpolator"
     android:duration="50" />
</set>

但是我想使用ObjectAnimator,这样我就可以在播放其他动画的同时使用AnimatorSet播放这个动画。

我试着这样做:

代码语言:javascript
复制
val pvhR = PropertyValuesHolder.ofFloat(View.ROTATION, -0.05f, 0.05f)
val pvhT = PropertyValuesHolder.ofFloat(View.TRANSLATION_X, -0.05f, 0.05f)

val rotate = ObjectAnimator.ofPropertyValuesHolder(imageView, pvhR). apply {
    duration = 50
    repeatCount = 20
    repeatMode = ValueAnimator.REVERSE
}
val translate = ObjectAnimator.ofPropertyValuesHolder(imageView, pvhT).apply {
    duration = 50
    repeatCount = 20
    repeatMode = ValueAnimator.REVERSE
}

但是平移动画会让我的imageView消失。我以前遇到过旋转动画的问题(当我尝试做旋转动画时,imageView改变了它的位置,但我使用.ofPropertyValuesHolder而不是.ofFloat修复了它)。可能是因为我用的是custom library that implements a zoomable/pinchable layout

现在我试着做这个翻译动画,但它不工作,即使在.ofPropertyValuesHolderz上。它只适用于XML,但正如我所说的,我不能将它放入AnimatorSet()中。

EN

回答 1

Stack Overflow用户

发布于 2020-05-08 02:03:05

试试这段代码

代码语言:javascript
复制
        val set = AnimatorSet()
        val rotation = ObjectAnimator.ofFloat(imageViewMain, "rotation", -0.05f, 0.05f).apply {
            duration = 50
            repeatCount = 20
            repeatMode = ValueAnimator.REVERSE
        }
        val translation = ObjectAnimator.ofFloat(imageViewMain, "translationX", -0.05f, 0.05f).apply {
            duration = 50
            repeatCount = 20
            repeatMode = ValueAnimator.REVERSE
        }
        set.playTogether(rotation, translation)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61642042

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档