2011-08-26 9 views
6

Pracuję nad Androidem od jakiegoś czasu i chciałbym wiedzieć, czy możliwe jest odzyskanie pozycji przycisku w systemie Android.Odzyskaj współrzędne X i Y przycisku w Androidzie?

Moim celem jest uzyskanie współrzędnych X & Y i wydrukowanie ich na urządzeniu LOGCAT.

Kilka przykładów, aby pokazać mi, jak byłbym wdzięczny.

Dzięki

Odpowiedz

9

Oczywiście, można uzyskać te, upewnij się, że widoki są sporządzane co najmniej raz przed postarać się o stanowiska. Można postarać się o stanowiska w onResume() i spróbuj te funkcje

view.getLocationInWindow() 
or 
view.getLocationOnScreen() 

czy trzeba coś w stosunku do rodzica, użyj

view.getLeft(), view.getTop() 

Linki do definicji API:

+0

** getLocationInWindow (int []) ** i ** getLocationOnScreen (int []) ** ma parametr. Czy jesteś pewien swojego pomysłu? – hakiko

+0

@hakkikonu spójrz na moją odpowiedź, aby zrozumieć użycie ** getLocationInWindow (int []) **. –

4

Jak Azlam powiedział można użyć View.getLocationInWindow() uzyskać współrzędne X, Y.

Oto przykład:

Button button = (Button) findViewById(R.id.yourButtonId); 
Point point = getPointOfView(button); 
Log.d(TAG, "view point x,y (" + point.x + ", " + point.y + ")"); 

private Point getPointOfView(View view) { 
    int[] location = new int[2]; 
    view.getLocationInWindow(location); 
    return new Point(location[0], location[1]); 
} 

Bonus - Aby uzyskać punkt środkowy danego widoku:

Point centerPoint = getCenterPointOfView(button); 
Log.d(TAG, "view center point x,y (" + centerPoint.x + ", " + centerPoint.y + ")"); 

private Point getCenterPointOfView(View view) { 
    int[] location = new int[2]; 
    view.getLocationInWindow(location); 
    int x = location[0] + view.getWidth()/2; 
    int y = location[1] + view.getHeight()/2; 
    return new Point(x, y); 
} 

Mam nadzieję, że przykładem może być jeszcze przydatny do kogoś.

0
buttonObj.getX(); 
buttonObj.getY(); 
Powiązane problemy