2013-07-10 3 views
4

Я использовал следующий код, чтобы получить координаты местоположения Location (x, y) в моем макете. У меня есть кнопка и следующий код, чтобы получить его местоположение на scren.However, это принудительно закрывает приложение при использовании этого . code.Also отметить, что это заявление было названо после setContentView() Ниже приводится кодКак получить координаты x, y в андроиде?

Toast.makeText(MainActivity.this, button1.getTop(),Toast.LENGTH_LONG).show(); 

И следующее сообщение об ошибке:

E/AndroidRuntime(11630): android.content.res.Resources$NotFoundException: String resource ID #0x196 

.Как я получаю вида по (скажем кнопку в моем случае) на экране (x, y координаты)?

ответ

3

метод, который вы используете, ожидает целочисленные значения как ссылки R.string.whatever. Включить возвращаемое значение getTop() в String.

Toast.makeText(MainActivity.this, String.valueOf(button1.getTop()), Toast.LENGTH_LONG).show(); 

Чтобы получить х/у кнопки (с API 11):

Toast.makeText(MainActivity.this, (int)button1.getX() + ":" + (int)button1.getY(), Toast.LENGTH_LONG).show(); 

Doc:

The visual x position of this view, in pixels.

Для API ниже 11 вы находитесь на правильном пути: getTop() является эквивалентом getY(), но без возможности анимации/перевода. getLeft() - это квивалент getX() с тем же ограничением.

+0

Ohh !!! Извините за такой глупый вопрос. Спасибо всем. – Joyson

+0

Но как мне получить координаты x и y этого местоположения? В настоящее время он просто возвращает значение int? – Joyson

+0

обновил мой ответ – WarrenFaith

0

button1.getTop() возвращает номер int, Toast.makeText() рассматривает этот номер int как идентификатор строки, который не существует на самом деле, поэтому он сбой.

Попробуйте использовать button1.getTop() + "", чтобы перейти к строке.

Смежные вопросы