android - 自定义 View 中的涟漪效果

标签 android android-canvas android-view android-custom-view ripple

我目前正在创建一个 Android View ,当用户点击它时,我会在点击的坐标周围显示一种波纹。

但我不确定该怎么做。我的第一个想法是使缓存无效,每次都使圆圈变大,但这样做既不合适也不高效。

如果有人以前遇到过同样的问题并且愿意分享一些关于如何做的提示,我们将不胜感激。

最佳答案

我终于找到了解决办法。不是一个完美的,但它现在有效。

这是我做的代码。基本上,当我需要它时,我将一个 bool 值更改为 true,这样我的 onDraw 函数就知道它必须执行 drawFingerPrint 函数。

drawFingerPrint 函数,在另一端,只是在每次迭代之间绘制一个越来越大的圆,直到达到所需的直径

private fun drawFingerPrint(canvas: Canvas) {
        canvas.drawCircle(pointerX, pointerY, radius, paint)

        if(radius<= 100F){
            radius+=10F
            invalidate()
        }
        else{
            radius = 0F
            drawAroundFinger = false
            invalidate()
        }
    }

我希望其他人有时会觉得这很有用!

马修

关于android - 自定义 View 中的涟漪效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54393260/

相关文章:

java - 不幸的是,在splash.xml上添加图像后应用程序已停止

android - 使用简单XML生成gradle错误

android - 没有多重效果的 Imageview 触摸/点击效果 (Android)

android.widget.LinearLayout$LayoutParams 类错误

android - 为 PreferenceActivity 定义的布局和样式在哪里?

android - LinearLayout 没有设置所需的 layout_height 属性

android - 如何在 android 的自定义 View 的 Canvas 上绘制段落

android - 硬件加速 Canvas

android - drawLine() 方法未正确绘制线条 (Android)

android - 在服务上接收隐藏状态栏/进入全屏 Activity 事件