私はいくつかの関連する質問を見つけました。onDraw()の前にキャンバスのサイズを取得するには
私のゲームでは、オブジェクトを作成します。オブジェクト(クラス)は、画面上のランダムな位置: public float X=Rnd.nextInt(400);
をとります。 400の最大値をランダマイザーに置き換えたいと思います。
それはこれらの規則に従って、X上のどこかにオブジェクトを置く必要があります:キャンバスのキャンバス+ 10 < X <右マージンの
左マージン - 20
しかし... onDraw()はしていませんまだ呼び出されています。だから私はキャンバス上でgetWidth()を行うことはできません。
どうすれば解決できますか?つまり、onDrawが呼び出される前にキャンバスのサイズをチェックする方法は何ですか? (もしそうなら、どうすればいい?)
Thnx!
ありがとう! 'Display display =((WindowManager)getContext()。getSystemService(Context.WINDOW_SERVICE))。getDefaultDisplay();' 解決しました。 SurfaceViewを拡張するクラスで使用しました。次に:with 'width = display.getWidth(); '公開可能なintに幅を置くことができます。 –
ByteMe、あなたの答えのおかげで、私はhttps://play.google.com/store/apps/details?id=happyworx.nl.Applezと書くことができました。ありがとうございました! –
ActivityはContextのインスタンスなので、getContext()またはgetApplicationContext()を使用することはお勧めしません。例Context context = this; (これは活動である) – barwnikk