2013-07-10 194 views
4

我已经使用下面的代码来获取我的layout中的视图的位置(x,y)坐标。我有一个按钮和下面的代码来获取它在scren上的位置。但是当它使用这个时强制关闭应用程序。code.Also注意,这一说法的setContentView()后,被称为以下是代码如何在android中获取视图的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(); 

要获得按钮的X/Y(因为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.

对于低于11 API,你是在正确的道路:getTop()相当于getY(),但没有可能的动画/翻译。 getLeft()是具有相同限制的getX()的等价物。

+0

哦!!!对不起,这样一个愚蠢的问题。谢谢大家。 – Joyson

+0

但是,我如何获得该位置的x和y坐标?目前它只是返回我的int值? – Joyson

+0

更新了我的回答 – WarrenFaith

0

button1.getTop()返回一个int数字,Toast.makeText()将int数视为实际上不存在的字符串资源id,因此它崩溃。

尝试使用button1.getTop() + ""更改为字符串。

相关问题