Android 拖动路径
我试图通过重新绘制存储在点数组中的坐标,然后重新创建它,在画布上拖动一条路径。路径会拖动,但会水平和垂直翻转,就像用户单击的镜像一样。我不知道为什么Android 拖动路径,android,path,touch,android-canvas,motionevent,Android,Path,Touch,Android Canvas,Motionevent,我试图通过重新绘制存储在点数组中的坐标,然后重新创建它,在画布上拖动一条路径。路径会拖动,但会水平和垂直翻转,就像用户单击的镜像一样。我不知道为什么 private void drag(MotionEvent e) { // TODO correct weird flip if (clicked(e)) { for (Point p : points) { int modX = (int) (e.getX() + (e.getX() -
private void drag(MotionEvent e) {
// TODO correct weird flip
if (clicked(e)) {
for (Point p : points) {
int modX = (int) (e.getX() + (e.getX() - p.x));
int modY = (int) (e.getY() + (e.getY() - p.y));
p.set(modX, modY);
}
updateOutline();
}
}
private void updateOutline() {
// update the outline
outline = new Path();
outline.moveTo(points.get(0).x, points.get(0).y);
for (Point coor : points)
outline.lineTo(coor.x, coor.y);
}
任何帮助都将不胜感激,谢谢在我看来,这些方面存在一个问题:
int modX = (int) (e.getX() + (e.getX() - p.x));
int modY = (int) (e.getY() + (e.getY() - p.y));
考虑两点A(1,5)和B(4,5)。如果用户在C(3,6)中单击,则点A将转换为A'(5,7),点B将转换为B'(2,7)。如您所见,点A和点B将改变位置
您可能希望存储开始拖动位置,并使用此信息计算距离和更新的路径位置