【发布时间】:2020-06-19 23:59:35
【问题描述】:
我只能在onTouchEvent方法中移动一个圆圈
我注意到的另一个问题是,当您触摸 Canvas 上的任何位置时,Circle One 的位置会发生变化
只有在触摸/拖动圆圈时才会发生这种情况
Canvas 似乎只能识别触摸
我该如何解决这个问题?
public class Example extends View {
private Paint circleOne, circleTwo;
float xCircleOne, yCircleOne, xCircleTwo, yCircleTwo;
int radiusCircleOne = 100;
int radiusCircleTwo = 50;
public Example(Context context) {
super(context);
init();
}
private void init() {
circleOne = new Paint();
circleTwo = new Paint();
...
}
@SuppressLint("ClickableViewAccessibility")
@Override
public boolean onTouchEvent(MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_MOVE:
xCircleOne = event.getX();
yCircleOne = event.getY();
invalidate();
break;
}
return true;
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
// Circles
canvas.drawCircle(xCircleOne, yCircleOne, radiusCircleOne, circleOne);
canvas.drawCircle(xCircleTwo, yCircleTwo, radiusCircleTwo, circleTwo);
}
}
【问题讨论】: