Android SurfaceView larghezza / altezza
-
30-09-2019 - |
Domanda
Ho fatto un paio di applicazioni per Android, ma nessuno grafica utilizzata più di tanto. Ora sto cercando di fare un gioco vero e proprio. Ho alcuni bitmap che sono sulla mia tela. Il mio problema è che non sono sicuro dove inizializzare le loro posizioni. e negli avvenimenti OnTouch voglio per assicurarsi che le immagini bitmap non lo fanno al di fuori randagio lo schermo. Ad esempio, l'inizializzazione di una bitmap:
canvas.drawBitmap(glider.getGraphic(), 30, 20, null);
20 e 30 erano arbitrario. Ma voglio essere in grado di scrivere qualcosa di simile screen.getWidth () quindi so esattamente dove il bitmap è relativo al bordo dello schermo. Non riesco a trovare questo nel riferimento sviluppatori.
Soluzione
Se stai solo cercando di ottenere le dimensioni dello schermo, date un'occhiata alla classe DisplayMetrics
. È possibile ottenere un'istanza e le misure in questo modo:
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
int screenHeight = metrics.heightPixels;
int screenWidth = metrics.widthPixels;
tenere a mente questa è la dimensione dello schermo assoluto. Se stai facendo un gioco a schermo intero, questo funzionerà bene, ma in caso contrario, è necessario tenere a mente la dimensione della barra di notifica, e, eventualmente, la barra del titolo. Potrebbe essere meglio in quel caso per ottenere solo l'altezza del SurfaceView sé e usarlo per i vostri calcoli.