我想要修改我的画布和触摸事件,以便在用户仍然沿着画布移动时,最后绘制的圆圈逐渐淡出。圆形轨迹在画布上淡出
其中较小的圆淡出加班。
我已经经历了大部分与Bitmap相关的类似问题。我一直在努力实现在这些问题中提出的提示,因为我的圆形坐标存储在循环绘制的ArrayList中,而不是绘制到画布上的单个形状/图像。
下面是我到目前为止已经写的:
case MotionEvent.ACTION_MOVE: {
if (inCircle(event, sceneView.circleRadius - 30)) {
int pointer = event.getPointerCount();
Point xyPoint = new Point();
for (int i = 0; i < pointer; i++) {
xInput = (int) event.getX() - (50/2);
yInput = (int) event.getY() - (50/2);
colorList.add(getCircleColor(sceneView.myBitmap));
xyPoint.x = xInput;
xyPoint.y = yInput;
pointList.add(xyPoint);
}
invalidate();
return true;
}
}
和的onDraw:
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
for (int i = 0; i < pointList.size(); i++) {
Point p = pointList.get(i);
touchCircle.setColor(colorList.get(i));
canvas.drawCircle(p.x, p.y, touchRadius, touchCircle);
}
}
我试图修改ArrayList中圆的阿尔法值栏的最后元素来反映淡出,但这会导致一个口吃效果,而不是以前所有点的平滑淡出。
道歉,如果这个问题出现重复,我只是非常感谢一些意见,关于如何解决这个问题。
请让我知道是否有任何我应该澄清。
谢谢!我浏览了一下你的代码并在网上阅读了一下。我现在有一个基本的淡入淡出动画:)。然而,现在它淡化了同时绘制的所有圈子。你会知道我怎么能够实现从最古老的绘制到最近的动画的交错动画。 –
你需要在这个计算中引入'pointList'的索引。在你的'Runnable'中,你需要根据索引区分动画。 – Henry