11

I set the two pointers inside ACTION_POINTER_DOWN

point1.set(event.getX(0),event.getY(0));
point2.set(event.getX(1),event.getY(1));

How can I get the distance between this two points? Is there any way to get it?

I want the distance to make some Scrolling effect. With the distance, I can use it like a scalefactor and resize my Layouts.

I hope someone can tell me how to do that!

Sergey Glotov
  • 20,200
  • 11
  • 84
  • 98

3 Answers3

25

Its not just Android..

We remember from trigonometry class that distance between two points can be calculated using Pythagorean Theorem as demonstrated here

But in code basically what you want is as follows:

double d = Math.sqrt(Math.pow(event.getX(1) - event.getX(0), 2) + Math.pow(event.getY(1) - event.getY(0), 2));

Where d is distance between two points

Pasi Matalamäki
  • 1,843
  • 17
  • 14
9
Math.hypot(x1 - x2, y1 - y2)

should perform a bit faster.

Math.hypot

firedev
  • 20,898
  • 20
  • 64
  • 94
  • 2
    I think your answer would be way better if you added a short explanation on why this should be a bit faster. – Bonifacio2 Aug 22 '19 at 12:26
2

Finding distance between 2 points is not android specific:

    double x1 = event.getX(1);
    double y1 = event.getY(1);
    double x2 = event.getX(0);
    double y2 = event.getY(0);
    double x = Math.sqrt(Math.pow(x2 - x1, 2) - Math.pow(y2 - y1, 2));
user3282666
  • 640
  • 1
  • 7
  • 21