Autore Topic: Grafica a tutto schermo con ogni cellulare...come si fa?  (Letto 4036 volte)

Offline maxlovegods

  • Utente junior
  • **
  • Post: 55
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    liquid
Grafica a tutto schermo con ogni cellulare...come si fa?
« il: 02 Aprile 2010, 10:04:36 CEST »
0
Ho appena fatto un gioco per Android.
Purtroppo ho visto che, nonostante sia a tutto schermo sull'emulatore, può capitare che con altri cellulari vada fuori schermo. Ad esempio con il nexus.

Per farmi capire ho fatto un gioco in 2D dove un'immagine a tutto schermo di dimensione fissa di 480x320, sull'emulatore risulta a tutto schermo, mentre sul Nexus occupi solo metà schermo e quindi tutto il gioco va a quel paese. Come bisogna fare per adattare il gioco a tutto schermo? Bisogna usare del codice che zoomma il gioco a tutto schermo? Come si fa? Aiuto vi prego.

Offline Rolli

  • Utente junior
  • **
  • Post: 82
  • Respect: 0
    • Mostra profilo
    • voodoomedia.it
  • Dispositivo Android:
    Acer Liquid
  • Play Store ID:
    voodoomedia
  • Sistema operativo:
    Windows
Re:Grafica a tutto schermo con ogni cellulare...come si fa?
« Risposta #1 il: 02 Aprile 2010, 10:13:50 CEST »
0
nella tua activity inserisci questo:


Codice (Java): [Seleziona]
public void onCreate(Bundle savedInstanceState)
    {
       super.onCreate(savedInstanceState);

       requestWindowFeature(Window.FEATURE_NO_TITLE);
   
       getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);


       setContentView(R.layout.mioLayout);
               
      ...
:)          :P    --->|^.^|<---     ;)         :D 

Offline maxlovegods

  • Utente junior
  • **
  • Post: 55
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    liquid
Re:Grafica a tutto schermo con ogni cellulare...come si fa?
« Risposta #2 il: 02 Aprile 2010, 10:15:09 CEST »
0
Grazie, ora provo poi ti faccio sapere

Offline maxlovegods

  • Utente junior
  • **
  • Post: 55
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    liquid
Re:Grafica a tutto schermo con ogni cellulare...come si fa?
« Risposta #3 il: 02 Aprile 2010, 10:19:58 CEST »
0
Ciao.
Senti io quelle opzioni già l'ho messe.
Solo che mi mettono il gioco in full screen, senza la barra di stato. Però credo che le immagini, se sono ad esempio 480x320, rimangano tali anche su schermi tipo 1024x800.
Invece io vorrei che i mio gioco che ha la dimensione di 480x320 si adatti a tutto schermo su ogni cellulare.
Questo te lo dico perchè un utente qua a provato a giocare al mio gioco con il Nexus (che si vede ha una risoluzione maggiore) e il mio gioco gli risultava coprire solo un quarto dello schermo, perchè ovviamnete l'immagine più grossa era di 480x320. Come devo fare? Help pls

Offline blackgin

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1387
  • Respect: +164
    • Google+
    • blackgins
    • blackginsoft
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Sistema operativo:
    Mac OSX 10.8
Re:Grafica a tutto schermo con ogni cellulare...come si fa?
« Risposta #4 il: 02 Aprile 2010, 10:23:41 CEST »
0
Nella definizione delle dimensioni che unitá di misura hai usato? Dovresti usare i dp che si adattano alla dimensione dello schermo
Postate il LogCat LogCat LogCat LogCat LogCat

Offline Rolli

  • Utente junior
  • **
  • Post: 82
  • Respect: 0
    • Mostra profilo
    • voodoomedia.it
  • Dispositivo Android:
    Acer Liquid
  • Play Store ID:
    voodoomedia
  • Sistema operativo:
    Windows
Re:Grafica a tutto schermo con ogni cellulare...come si fa?
« Risposta #5 il: 02 Aprile 2010, 10:26:54 CEST »
0
Se quelle opzioni le hai già messe significa che il gioco è in full screen cioè non si vede titleBar e neppure la statusBar.
la questione dell'adattarsi è relativa ad altre impostazioni a seconda di come hai realizzato il gioco cambiano
ma principalmente considera il layout o la view che hai usato non deve avere una dimensione fissa in pixel, ti consiglio di usare
"fill_parent" per l'altezza e la larghezza questo fa si che la view si adatti al suo contenitore..


se non risolvi posso dare un occhio al tuo layout
:)          :P    --->|^.^|<---     ;)         :D 

Offline maxlovegods

  • Utente junior
  • **
  • Post: 55
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    liquid
Re:Grafica a tutto schermo con ogni cellulare...come si fa?
« Risposta #6 il: 02 Aprile 2010, 10:32:47 CEST »
0
Ragazzi se mi date una mano vi offro una cena.

X Rolli e Blackgin:

Ad esempio io per mettere un'immagine ho scritto così:

Bitmap _scratch = BitmapFactory.decodeResource(getResources(), R.drawable.blaze);
canvas.drawBitmap(_scratch, 350, 100, null);

Praticamente si, gli ho dato delle posizioni assolute.
Ho dato pure delle posizioni assolute agli evento "TOUCH".
Quindi se devo cliccare su questa immagine ho fatto così:

if(inizia==true&&memoX>=200&&memoX<=290&&memoY>=230&&memoY<=260){
        inizia=false;
}

Blackgin mi sta dicendo di mettere dp come unità di misura. Che devo fare, mettere il numero e poi scrivere dp?

XRolli, che devo fare altrimenti?

Grazie

Offline Rolli

  • Utente junior
  • **
  • Post: 82
  • Respect: 0
    • Mostra profilo
    • voodoomedia.it
  • Dispositivo Android:
    Acer Liquid
  • Play Store ID:
    voodoomedia
  • Sistema operativo:
    Windows
Re:Grafica a tutto schermo con ogni cellulare...come si fa?
« Risposta #7 il: 02 Aprile 2010, 10:40:35 CEST »
0
...dovrei capire se stai disegnando su canvas o utilizzi delle views


non immagino come sia il gioco, vuoi che si adatti solo il background o tutti gli elementi?
se mostri uno screenshot o alleghi un apk anche di prova..
:)          :P    --->|^.^|<---     ;)         :D 

Offline Qlimax

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 757
  • Respect: +202
    • Google+
    • _Qlimax
    • Mostra profilo
    • www.egsolutions.ch
  • Dispositivo Android:
    Galaxy Nexus - Nexus One - Wildfire - Magic
  • Play Store ID:
    egsolutions.ch
  • Sistema operativo:
    Ubuntu 12.04, Windows 7
Re:Grafica a tutto schermo con ogni cellulare...come si fa?
« Risposta #8 il: 02 Aprile 2010, 10:44:41 CEST »
0
@rolli guarda qui http://www.anddev.it/index.php/topic,195.0.html

ho postato un video nel 3° o 4° post

@max

sposto il topic in "views e layout"


Offline maxlovegods

  • Utente junior
  • **
  • Post: 55
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    liquid
Re:Grafica a tutto schermo con ogni cellulare...come si fa?
« Risposta #9 il: 02 Aprile 2010, 10:45:19 CEST »
0
Ciao.
Sto lavorando con SurfaceView.

Dal codice vedi che c'è scritto "canvas"?
Credo che siano canvas.
Cioè non sto mettendo le immagini grazie all'XML ma direttamente dal codice.
Infatti se vedi ho creato un oggetto bitman e con canvas.drawbitmap metto l'immagine dandogli con il codice la posizione con le coordinate.

Come ti dicevo o almeno ci provavo a spiegarmi, si devono adattare tutti gli elementi del gioco. Dal background alle immagini nel gioco. E non solo! Anche gli eventi (cioè i click su un particolare punto dello schermo) devono adattarsi alle dimensioni dello schermo. Ad esempio se c'è un tasto messo in un punto, anche la mappatura del click deve adattarsi alla posizione del tasto sullo schermo!

Offline Qlimax

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 757
  • Respect: +202
    • Google+
    • _Qlimax
    • Mostra profilo
    • www.egsolutions.ch
  • Dispositivo Android:
    Galaxy Nexus - Nexus One - Wildfire - Magic
  • Play Store ID:
    egsolutions.ch
  • Sistema operativo:
    Ubuntu 12.04, Windows 7
Re:Grafica a tutto schermo con ogni cellulare...come si fa?
« Risposta #10 il: 02 Aprile 2010, 10:49:34 CEST »
0

Offline maxlovegods

  • Utente junior
  • **
  • Post: 55
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    liquid
Re:Grafica a tutto schermo con ogni cellulare...come si fa?
« Risposta #11 il: 02 Aprile 2010, 10:50:48 CEST »
0
Grazie me lo leggo tutto. Spero che riesco a risolvere al meglio. Altrimenti tutto lavoro buttato :(

Offline maxlovegods

  • Utente junior
  • **
  • Post: 55
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    liquid
Re:Grafica a tutto schermo con ogni cellulare...come si fa?
« Risposta #12 il: 02 Aprile 2010, 11:08:11 CEST »
0
Wow Qlimax, ho aperto un emulatore a dimensioni grandi come un nexus e il gioco mi si vede come nel tuo video...madò che rivelazione!!!!

Ora devo capire se c'è la possibilità con poco codice di farlo adattare a tutto schermo sempre!!! Tu mi capisci che l'hai provato sul tuo nexus. Cavolo, non è che te già hai una soluzione??!?

Ciao

Offline maxlovegods

  • Utente junior
  • **
  • Post: 55
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    liquid
Re:Grafica a tutto schermo con ogni cellulare...come si fa?
« Risposta #13 il: 02 Aprile 2010, 11:21:14 CEST »
0
Ho quasi risolto ragazzi...però ancora non del tutto.
Nel manifest ho messo così:

<supports-screens
          android:largeScreens="true"
          android:normalScreens="true"
          android:smallScreens="true"
         
          android:anyDensity="false" />

Praticamente me lo mette a tutto schermo.
Solo che se un'immagine era lunga (con schermo landscape) 480 px, se lo schermo era più grosso allora questa per un pezzetto è più piccola. Io invece vorrei che questa si allungasse, adattandosi. Ad esempio se in uno schermo più piccolo arrivava comunque a toccare il vertice dello schermo, anche in uno grande vorrei che si stirasse per toccare il vertice dello schermo grande...HELP!!! :D

Offline maxlovegods

  • Utente junior
  • **
  • Post: 55
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    liquid
Re:Grafica a tutto schermo con ogni cellulare...come si fa?
« Risposta #14 il: 02 Aprile 2010, 11:31:22 CEST »
0
leggiti bene questo documento  O:-)
http://developer.android.com/guide/practices/screens_support.html

Ciao. Scusa lo so che sto rompendo un po' le palle.
Però con quello che ho scritto sopra non ho proprio risolto.
Cioè...si il gioco si ingrandisce e si rimpicciolisce a seconda dello schermo. Però rimane di una proporzione fissa di 480x320.
Invece se uno schermo a una proporzione leggermente differente (ad esempio invece di 480x320 è 480x300) il pezzo che rimane fuori viene tagliato. Ora con questo codice lo schermo come dicevo si ingrandisce e si rimpicciolisce. Come posso invece fargli capire che deve adattare la dimensione 480x320 sempre alle dimensioni dello schermo, anche deformando l'immagine ovviamente??!?

HEEEEEEEEEEEEELP!!!