图片我弄不上来,大牛们下一个网易新闻客户端试试看,我做了demo不太理想
我自己做的demo是在oneventtouch()中invalidate();在onDraw()中
以手点击的坐标为圆点画圆,半径不断的增加,但是网易中的item一开始是在手点击的坐标为圆点,之后圆点在不断的移动,到最后画满item的时候圆点正好到中间。
图片我弄不上来,大牛们下一个网易新闻客户端试试看,我做了demo不太理想
我自己做的demo是在oneventtouch()中invalidate();在onDraw()中
以手点击的坐标为圆点画圆,半径不断的增加,但是网易中的item一开始是在手点击的坐标为圆点,之后圆点在不断的移动,到最后画满item的时候圆点正好到中间。
以下回答参考 皆我百晓生、券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。
这个问题的答案其实很简单,你只需要将你的onTouchEvent()
方法中的逻辑稍微改动一下即可。以下是修改后的代码:
@Override
public boolean onTouchEvent(MotionEvent event) {
// 检查事件是否是触摸事件
if (event.getAction() != MotionEvent.ACTION_DOWN) return false;
// 获取触摸点坐标
int x = (int) event.getX();
int y = (int) event.getY();
// 将触摸点坐标设置为圆心
mTouchPoint.set(x, y);
invalidate(); // 更新布局
return true;
}
在这个版本的代码中,我们首先检查事件是否为触摸事件,如果是,则获取触摸点的坐标。然后,我们将触摸点的坐标设为主动点。最后,我们在onDraw()
方法中绘制一个圆形,并在其内部添加一个填充的颜色,从而实现你在网易新闻客户端中看到的效果。
注意:这个解决方案依赖于你已经实现了onDraw()
和invalidate()
的方法。如果你还没有实现这些方法,请确保它们已经被正确地实现。