2011-12-21 2 views
2

J'ai lu beaucoup de documentation sur la prise en charge de plusieurs tailles d'écran, mais toujours confus. J'ai lu comme si spécifié dans dp il sera automatiquement mis à l'échelle.Mise en page unique pour toutes les tailles d'écran

Dans mon échantillon j'ai juste une seule disposition. là j'ai placé un texte d'édition. et la largeur donnée, supposons 170 dp. Supposons que la largeur est la moitié de l'écran dans un émulateur de téléphone de 5 pouces. Ce que je m'attendais à ce que je m'attendais, si je le montre sur une tablette 7inch ou 10 pouces, il y aura aussi la moitié de la largeur de l'écran (c'est-à-dire qu'il sera automatiquement mis à l'échelle). Mais ça n'a pas marché. dans une tablette de 10 pouces, il est seulement de très petite taille.

Que dois-je faire pour y parvenir que par la mise en page XML (seulement xml simple)

Répondre

1

Apprenez à utiliser des poids de mise en page, vous pouvez les utiliser comme un pourcentage de 100.

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="horizontal" > 

    <TextView 
     android:layout_width="0dip" 
     android:layout_height="wrap_content" 
     android:layout_weight="50" 
     android:text="aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" /> 

    <View 
     android:layout_width="0dip" 
     android:layout_height="0dip" 
     android:layout_weight="50" /> 

</LinearLayout> 

Ici, le textview prend 50% de la largeur de l'écran et l'autre point de vue est une sorte d'entretoise invisible prenant l'autre 50% de la largeur de l'écran.

Ce qui ressemble à ceci (aperçu XML Eclipse):

TextView wrapping at 50%

Comme vous pouvez le voir les enveloppements TextView quand il est à 50% de l'écran. Travailler sur toutes les tailles d'écran.

+0

Ça fait l'affaire. Merci. Qu'en est-il de la taille du texte? Pouvons-nous nous adapter de la même façon? – mia

+0

Non, il suffit d'utiliser 'sp' pour texturer – Blundell

+0

J'ai essayé sp, mais il a le même effet que je l'ai expliqué dans ma question. Donc, pour le cas de texte, je dois créer des styles différents pour les grands et xlarge droit ?? Je ne peux pas l'obtenir en utilisant un seul xml !! – mia

2

Dont définir une largeur statique pour la Textview que Android sera échelle automatiquement la taille correcte à l'aide

  android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 

Fondamentalement, ce que cela fait est le TextView la taille de la largeur de l'appareil, et enveloppe la hauteur uniquement à la hauteur nécessaire du texte.

YOu pourrait aussi faire warp_content pour la largeur si vous le vouliez. C'est la meilleur façon. Si vous le définissez de manière statique, vous devrez créer différentes mises en page en utilisant XML.

+0

Désolé mais cela ne répond pas à ma question. ou est-ce une limitation. – mia

Questions connexes