2013-06-28 15 views
5

Ho realizzato il layout da xml con il layout della tavoletta della dimensione dell'emulatore. Ma quando si apre sullo stesso layout sul dispositivo del telefono Android, allora ogni cosa è distorta, quindi posso creare un layout xml che funzioni bene sia nel telefono che nel tablet. Per favore suggeriscimi, apprezza la tua risposta.Come posso avere il layout che funzionerà sia su Tablet che sul telefono?

+0

dovrai progettare layout e disegni per entrambe le dimensioni dello schermo. controlla i documenti ha tutte le informazioni che ti servono http://developer.android.com/guide/practices/screens_support.html – Raghunandan

+2

Ho dato una risposta dettagliata al riguardo qui: http://stackoverflow.com/a/12742888/1369222 –

+0

Vedere [this] (http://stackoverflow.com/questions/14078460/android-how-to-scale-a-layout-with-screen-size/19925666#19925666) risposta. La dimensione dell'immagine –

risposta

11

Fai la tua risorsa in questo modo.

res/layout/my_layout.xml // layout per dimensioni dello schermo normale ("default")

res/layout piccolo/my_layout.xml // layout per dimensioni piccolo schermo

res/layout grande/my_layout.xml // layout per dimensione grande schermo

res/layout xlarge/my_layout.xml // layout per grande si schermo supplementare ze

res/layout xlarge-terra/my_layout.xml // layout per extra large con orientamento orizzontale

res/drawable-MDPI/my_icon.png // bitmap per media densità

res/drawable-hdpi/my_icon.png // bitmap per alta densità di

res/drawable-xhdpi/my_icon.png // bitmap per tane in più alti it

Per ulteriori reference. reference1.

Aggiungi questo nella vostra manifest.xml

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

Spero che questo vi aiuterà.

+0

sarà la stessa in tutte le cartelle disegnabili? o verrà inserita la diversa dimensione dell'immagine in ogni layout? –

+0

devi inserire dimensioni diverse dell'immagine. in base alla densità .. perché le immagini piccole sono adatte solo per il piccolo schermo. ma non si adatta allo schermo più grande perché sembra molto piccolo.quindi ci stiamo muovendo così. è meglio mettere diverse dimensioni dell'immagine. – Nirmal

+0

@Nirmal Ciao, sono usato anche questo ma non ho una soluzione. Il mio dispositivo mostra sempre solo il layout normale. Ho aggiunto questa autorizzazione 'android: configChanges = "orientation | keyboardHidden | screenSize | screenLayout"' Ciò influenzerà qualsiasi cosa. – SathishKumar

0

È possibile creare due layout separati per il telefono e scheda. Quello che devi fare è creare un file di layout con "nomefile" per telefono e per scheda creare un file di layout facendo clic con il tasto destro su progetto e selezionando nuovo> file di layout android xml> e quindi digitare un "nomefile", fare clic su Avanti e selezionare Dimensione da il pannello di destra e selezionare x-large dall'elenco a discesa. Il file di layout per scheda viene creato separatamente in modo da personalizzare il layout separatamente.

1

Utilizzare Tabelle e pesi per creare lo stesso rapporto di aspetto o simile su un telefono che si trova su un tablet. Creerei solo layout diversi come ultima risorsa.

<TableRow 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:layout_weight=".33" > 
      //Note: You will need some other TableRows fill in the difference of this Table Row..2 more of the same will equal 1. 
     <TextView 
      android:id="@+id/x" 
      android:layout_width="wrap_content" 
      android:layout_height="fill_parent" 
      android:layout_marginLeft="3dp" 
      android:layout_weight=".33" 
      android:background="@drawable/buttonx" 
      android:gravity="center" 
      android:text="Words" 
      android:textColor="#ffffff" 
      android:textSize="16sp" 
      android:textStyle="bold" /> 

     <TextView 
      android:id="@+id/x2" 
      android:layout_width="wrap_content" 
      android:layout_height="fill_parent" 
      android:layout_marginLeft="3dp" 
      android:layout_weight=".33" 
      android:background="@drawable/buttonx2" 
      android:gravity="center" 
      android:text="Other Words" 
      android:textColor="#ffffff" 
      android:textSize="16sp" 
      android:textStyle="bold" /> 

     <TextView 
      android:id="@+id/x3" 
      android:layout_width="wrap_content" 
      android:layout_height="fill_parent" 
      android:layout_marginLeft="3dp" 
      android:layout_weight=".33" 
      android:background="@drawable/buttonx3" 
      android:gravity="center" 
      android:text="More Words" 
      android:textColor="#ffffff" 
      android:textSize="16sp" 
      android:textStyle="bold" /> 

    </TableRow> 
+0

come questo mi aiuti? –

+0

Questo sta rendendo all'interno del layout una percentuale della pagina. Quindi, che si tratti di uno schermo TV o del dispositivo più piccolo, le proporzioni sono sempre le stesse. – SmulianJulian

+0

Mmmmm ti consiglierei l'uso del frammento ... –

Problemi correlati