У меня возникли проблемы с получением правильных координат (XY) для моего ImageView
.
Мой макет выглядит следующим образом:
<Relativelayout>
<Relativelayout>
<LinearLayout>
//I want to get the X and Y of this imageview
<ImageView/>
</LinearLayout>
</Relativelayout>
</Relativelayout>
После просмотра Подобный вопрос Я реализовал следующее:
int[] img_coordinates = new int[2];
mImageView.getLocationOnScreen(img_coordinates);
double x = (double)img_coordinates[0];
double y = (double)img_coordinates[1];
Просто чтобы убедиться, что я добавил выше в ViewTreeObserver
, вот так:
mImageView.getViewTreeObserver().addOnGlobalLayoutListener(
new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
int[] img_coordinates = new int[2];
mImageView.getLocationOnScreen(img_coordinates);
float x = (double)img_coordinates[0];
float y = (double)img_coordinates[1];
}
});
У меня проблемаявляется то, что возвращаемое значение XY неверно
Мой вопрос:
Есть ли причина, по которой я получаю неправильные координаты и как я могу получитьправильные?
РЕДАКТИРОВАТЬ:
Я решил предоставить весь мой XML-файл макета с pastebin, потому что он очень большой и потребуется некоторое время для его форматированияв ТАК. Здесь - ссылка.
Кроме того, вот изображение того, чего я хотел бы достичь: