我發現了一些相關的問題,沒有排他性的答案;如何獲取onDraw之前的畫布大小()
在我的遊戲中,我創建了一個對象。對象(類)在屏幕上隨機放置: public float X=Rnd.nextInt(400);
。我想用隨機函數替換400最大值。
應該把對象某處X,遵循以下規則:
帆布+ 10 < X <畫布的右邊緣的左邊空白處 - 20
但是...的的onDraw()有沒有但被稱爲。所以我不能在畫布上做一個getWidth()。
我應該如何解決這個問題?即在調用onDraw之前檢查畫布大小的方法是什麼? (或者我應該使用screenize?如果是這樣,怎麼辦?)
Thnx!
謝謝! 'Display display =((WindowManager)getContext()。getSystemService(Context.WINDOW_SERVICE))。getDefaultDisplay();' 解決了它。我在擴展SurfaceView的類中使用它。然後用:'width = display.getWidth();'我可以把寬度放在一個可公開訪問的int中。 – 2012-02-25 10:14:07
ByteMe,感謝您的回答,我可以寫出https://play.google.com/store/apps/details?id=happyworx.nl.Applez。謝謝! – 2012-05-07 22:33:38
我不推薦使用getContext()或getApplicationContext(),因爲Activity是Context的實例,例如:Context context = this; (這是活動) – barwnikk 2013-12-17 14:38:06