2013-07-10 174 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() + ""更改爲字符串。

相關問題