首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Blink CardView无法启动[对象动画,安卓]

Blink CardView无法启动[对象动画,安卓]
EN

Stack Overflow用户
提问于 2021-08-06 15:37:53
回答 1查看 39关注 0票数 0

今天我试着在我的CardView上做眨眼效果...如果我放入backgroundColor就会起作用,但如果我使用strokeColor就不会了。我关注了this tutorial,想让它成为现实,但并不是真的有效……如何更改才能正确地实现此效果?

代码语言:javascript
复制
 private fun createBlinkEffect() {

    val animator = ObjectAnimator.ofInt(mCardView,
        "strokeColor",
        ContextCompat.getColor(this, COLOR.WHITE),
        ContextCompat.getColor(this, COLOR.RED))

    animator.duration = 400
    animator.setEvaluator(ArgbEvaluator())
    animator.repeatMode = ValueAnimator.REVERSE
    animator.repeatCount = ValueAnimator.INFINITE
    animator.start()
}

这是我的layout_item

代码语言:javascript
复制
<androidx.cardview.widget.CardView
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/mCardView"
    android:layout_width="120dp"
    android:layout_height="152dp"
    android:layout_marginEnd="24dp"
    android:layout_marginBottom="4dp"
    app:strokeWidth="2dp"
    app:strokeColor="@android:color/transparent"
    app:cardCornerRadius="12dp">

耽误您时间,实在对不起

EN

回答 1

Stack Overflow用户

发布于 2021-08-06 18:07:39

就这样!

代码语言:javascript
复制
private fun createBlinkEffect() {
        ObjectAnimator.ofArgb(mCardView,
            "strokeColor",
            ContextCompat.getColor(this, Color.RED)).apply {
            duration = 500
            repeatCount = Animation.INFINITE
            addUpdateListener { mCardView.invalidate() }
            start()
        }
    }

Ps。请记住,使用MaterialCardView代替CardView,并设置默认的strokeWidthstrokeColor

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

https://stackoverflow.com/questions/68684253

复制
相关文章

相似问题

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