2010-10-20 7 views
1

Je souhaite que la ligne soit automatiquement mise à l'échelle. L'effet de mon code est vraiment étrange ...problème de mise en page android

je ne peux pas poster des images, si l'image est ici: http://i.stack.imgur.com/NQfkO.jpg

le code:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:orientation="horizontal" 
android:background="#FFFFF0" 

>

<TextView 
    android:id="@+id/number" 
    android:layout_width="wrap_content" 
    android:layout_height="60dip" 
    android:gravity="center_vertical" 
    android:textSize="25sp" 
    android:textColor="#CBCBCB" 
/> 
<TextView 
    android:id="@+id/label" 
    android:minHeight="60dip" 
    android:maxHeight="120dip" 
    android:layout_width="220dip" 
    android:layout_height="wrap_content" 
    android:layout_marginLeft="5dip" 
    android:gravity="center_vertical" 
    android:textSize="25sp" 
    android:textColor="#0f93b8" 

/> 
<TextView 
    android:id="@+id/people" 
    android:layout_width="fill_parent" 
    android:layout_height="60dip" 
    android:gravity="right" 
    android:textSize="12sp" 
    android:textColor="#CBCBCB" 

/> 
</LinearLayout> 
+0

Quelle version du firmware utilisez-vous? J'ai trouvé ceci se produit dans 1.5 mais pas 1.6 ou au-dessus! –

Répondre

0

Il pourrait y avoir une certaine confusion dans ce que vous voulez mettre à l'échelle. Pour avoir l'échelle TextView automatiquement en fonction de la longueur du contenu, vous pouvez définir la hauteur à des valeurs non concrètes en utilisant wrap_content. Cela avec une hauteur minimum vous donnera des vues qui affichent toujours votre contenu, mais ils ne peuvent pas tenir sur un écran (vous devrez peut-être mettre la vue globale dans un scrollview ou une liste avec les lignes comme éléments).

Si vous voulez que le texte lui-même soit mis à l'échelle "automagiquement" ... c'est un peu plus difficile car par défaut ce comportement n'existe pas. Vous devrez mesurer l'espace restant à l'aide du Canvas du TextView et déterminer les polices de caractères correctes à utiliser pour l'espace disponible. Je voudrais étendre TextView pour cela et remplacer les différentes méthodes onMeasure() et draw() pour déterminer la police correcte nécessaire. Si vos TextViews sont de taille fixe, cela simplifiera grandement la tâche.

+0

Je veux l'échelle TextView automatiquement en fonction de la longueur du contenu. Vous voyez cette image? J'ai mis l'android: layout_height pour être "wrap_content", et juste maintenant j'ai enlevé la ligne "android: maxHeight =" 120dip ".Mais ce n'est toujours pas de travail – shanqn

+0

Ooooh Je suis désolé, je vois Hmmm, si vous êtes en les mettant dans une liste, essayez fill_parent sur la hauteur de la linearlayout. –