Giống như Azlam nói rằng bạn có thể sử dụng View.getLocationInWindow() để có được những tọa độ x, y.
Dưới đây là một ví dụ:
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 - Để có được điểm trung tâm của quan điểm đưa ra:
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);
}
Tôi hy vọng ví dụ vẫn có thể có ích cho một ai đó.
Nguồn
2015-06-01 16:32:06
** getLocationInWindow (int []) ** và ** getLocationOnScreen (int []) ** có thông số. Bạn có chắc chắn về ý tưởng của bạn? – hakiko
@hakkikonu hãy xem câu trả lời của tôi để hiểu cách sử dụng ** getLocationInWindow (int []) **. –