自定义视图中的涟漪效果
Ripple effect in custom view
我目前正在创建一个 Android 视图,当用户点击它时,我会在点击的坐标周围显示一种波纹。
但我不确定该怎么做。我的第一个想法是使缓存无效,每次都使圆圈变大,但这样做似乎既不合适也不高效。
如果有人以前遇到过同样的问题并且愿意分享一些关于如何做的技巧,我们将不胜感激。
我终于找到了解决办法。不是一个完美的,但它现在有效。
这是我做的代码。基本上,当我需要它时,我将布尔值更改为 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 视图,当用户点击它时,我会在点击的坐标周围显示一种波纹。
但我不确定该怎么做。我的第一个想法是使缓存无效,每次都使圆圈变大,但这样做似乎既不合适也不高效。
如果有人以前遇到过同样的问题并且愿意分享一些关于如何做的技巧,我们将不胜感激。
我终于找到了解决办法。不是一个完美的,但它现在有效。
这是我做的代码。基本上,当我需要它时,我将布尔值更改为 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()
}
}
我希望其他人有时会觉得这很有用!
马修