android - 如何为从中心位置到全直径的波纹效果设置动画

标签 android kotlin

我正在尝试使用波纹创建图像按钮效果。然而,我希望涟漪效果从我的图像按钮图标的中心开始并填充图像按钮。是否可以让涟漪效果从中心到整个圆圈动画。就像一个白色圆圈的大小从 0 到圆圈直径的动画?

最佳答案

正如 RippleDrawable 的文档中所述您可以使用 setHotspot 设置 anchor 方法。

默认查看 sets the hotspot按下时到当前触摸坐标:

private void setPressed(boolean pressed, float x, float y) {
        if (pressed) {
            drawableHotspotChanged(x, y);
        }

        setPressed(pressed);
    }

ImageView passes此热点的内容:

 public void drawableHotspotChanged(float x, float y) {
    super.drawableHotspotChanged(x, y);

    if (mDrawable != null) {
        mDrawable.setHotspot(x, y);
    }
}

因此,从中心开始获得涟漪效果的一种方法是扩展 ImageView 并始终将热点设置为中心。当然还有其他方法,例如可以尝试扩展 RippleDrawable 并在那里覆盖 setHotspot

关于android - 如何为从中心位置到全直径的波纹效果设置动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65010446/

相关文章:

android - 实时模板在 Kotlin 中不起作用

kotlin - Dart 中是否有可以编写像 Future&then 这样的挂起函数的函数?

android - 我如何设置应用程序在像 skyps 一样关闭后继续在后台启动

java - 安卓手机蓝牙连接两个芯片

java - 帮助设置和 Android 动态壁纸

android - 我想在 Android Studio 中使用按钮样式 "Widget.Button.Transparent"

kotlin - 在 kotlin 中可变的列表类型可以在 java 中使用吗?

java - 如何在android studio中从url获取数据

spring - Kotlin Spring 无法 Autowiring 和 @Bean 注释

java - 找不到具有不同 buildvariant 的包名称 "...."的匹配客户端