Android: AbsoluteLayout?

Sono nuovo a Android. Mi piace avere la libera gamma di oggetti di disegno where mai voglio. Quindi ho usato Layout assoluto. Ho un messaggio che dice di utilizzare un layout diverso. E ho letto che questo è dovuto alle diverse res di diversi telefoni. La mia domanda è, è questo l'unico motivo per non utilizzare il layout assoluto? Ho fatto un metodo che utilizza metriche per regolare i pixel.

public int widthRatio(double ratioIn){ DisplayMetrics dm = new DisplayMetrics(); //gets screen properties getWindowManager().getDefaultDisplay().getMetrics(dm); double screenWidth = dm.widthPixels; //gets screen height double ratio = screenWidth/100; //gets the ratio in terms of % int displayWidth = (int)(ratio*ratioIn); //multiplies ratio desired % of screen return displayWidth; } //method to get height or Ypos that is a one size fits all public int heightRatio(double ratioIn){ DisplayMetrics dm = new DisplayMetrics(); //gets screen properties getWindowManager().getDefaultDisplay().getMetrics(dm); double screenHeight = dm.heightPixels; //gets screen height double ratio = screenHeight/100; //gets the ratio in terms of % int newHeight = (int)(ratio*ratioIn); //multiplies ratio by desired % of screen return newHeight; } //sets size of any view (button, text, ...) to a one size fits all screens public void setSizeByRatio(View object, int width, int height){ LayoutParams params = object.getLayoutParams(); params.width = widthRatio(width); params.height = heightRatio(height); } 

Quindi, se dico setSizeByRatio (Button, 10, 25); Imposta la width dei pulsanti al 10% della width dello schermo e l'altezza al 25% della percentuale dello schermo.

  • Come get le informazioni sulla scheda Google Now nella mia app
  • I frammenti di stato di ripristino sull'orientamento sono stati modificati
  • Intestazione authorization authentication HttpClient HttpClient "nc" hard-coded
  • Scopri se Android WebView mostra la pagina memorizzata nella cache
  • Impostazione del cursore a destra su un text EditText con il suggerimento di Gravità al centro
  • Qual è l'effetto GPS attivo sulla durata della batteria dei dispositivi mobili?
  • Ci sono telefoni che Layout Assolute non funzionano? Questo layout causa altri problemi?

  • Android edittext in listview perde la messa a fuoco sulla chiamata notifydatachanged
  • Attività a tema a dialogo: pulsanti postivi e negativi
  • biblioteca "libmaliinstr.so" non trovata ... in eclipse
  • Smack 4.1 SASL errore di authentication
  • disabilitare tutte le funzionalità del button di home e delle barre attività in Nexus 7
  • Android Independent Volume Control
  • 2 Solutions collect form web for “Android: AbsoluteLayout?”

    Il motivo per cui l'AbsoluteLayout è obsoleto è perché si dispone di alternative nel LinearLayout o nella GridLayout che fa lo stesso e altro. Sembra che stai cercando di calcolare le posizioni basate su posizioni assolute e il numero di pixel, un approccio che dovrebbe essere generalmente evitato a causa di problemi con size e densità dello schermo varoius.

    Leggere il link che @amiekuser ha fornito e concentrarsi sulla comprensione di come è la migliore pratica. Alcuni suggerimenti creano le immagini per le cartelle ldpi, mdpi e hdpi, utilizzando l'unità per dpi (pixel indipendenti dalla densità) anziché pixel grezzi e come testare l'applicazione su size e densità di schermate multiple utilizzando l'emulatore.

    Edit:

    Per impostare la posizione x e y di una vista è necessario utilizzare LayoutParams. Vedi questa domanda su come impostare TopMargin e LeftMargin per una vista utilizzando LayoutParams.

    I telefoni Android si presentano in molti fattori di forma, vale a dire non solo che varia molto in termini di dimensione dello schermo (2,7 ", 3,2", 3,7 "…) ma anche in termini di risoluzione (480X800, 480X848 ecc.). utilizzare AbsoluteLayout, infatti è deprecata nelle versioni più recenti di api.

    Il seguente link spiega in dettaglio questi elementi:

    http://developer.android.com/guide/practices/screens_support.html

    Controlla la sezione delle migliori prassi.

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.