2013-06-02 7 views
3

Je suis assez nouveau pour Android-développement. Je travaille actuellement sur une application, où j'ai besoin de mettre en page 4 boutons sur un écran. Les boutons 1 + 2 devraient être dans la première rangée et les 3 + 4 dans la deuxième rangée. Je veux que chaque bouton ait la même hauteur et la même largeur. Et comme il existe plusieurs tailles d'écran, je veux que la largeur des boutons soit de 40% de la largeur de l'écran. Y a-t-il quelque chose de ce genre à faire simplement par mise en page, ou ai-je besoin de tout calculer en code?Mise en page 4 boutons dans Android

Remarque: Je souhaite déployer l'application sur des appareils équipés d'Android 2.2 ou version ultérieure.

Voici un exemple de graphique. enter image description here

EDIT: Pour tous ceux qui sont à la recherche de la substance carré .. Voici la solution: http://android-layouts.com/category/tags/square

Répondre

3

essayer cette

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" > 


    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal" > 

    <Button 
     android:id="@+id/button1" 
     android:layout_width="0px" 
     android:layout_height="wrap_content" 
     android:layout_weight="0.4" 
     android:text="Button" /> 

    <Button 
     android:id="@+id/button2" 
     android:layout_width="0px" 
     android:layout_height="wrap_content" 
     android:layout_weight="0.6" 
     android:text="Button" /> 

    </LinearLayout> 


    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal" > 

    <Button 
     android:id="@+id/button3" 
     android:layout_width="0px" 
     android:layout_height="wrap_content" 
     android:layout_weight="0.4" 
     android:text="Button" /> 

    <Button 
     android:id="@+id/button4" 
     android:layout_width="0px" 
     android:layout_height="wrap_content" 
     android:layout_weight="0.6" 
     android:text="Button" /> 

    </LinearLayout> 



</LinearLayout> 

enter image description here

donc pour résoudre ce problème, vous devez utiliser android:layout_weight="40/100"="0.4"
et avant cela, vous devez définir android:layout_width à 0.becuase sans android:layout_weight="40/100"="0.4" ne fonctionne pas.
pour plus de détails aboute `` android: layout_weight` aller
What does android:layout_weight mean?

UPDATE 1

pour faire cette tâche pour la taille du bouton ci-dessous le code essayer

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" > 


    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="0px" 
     android:layout_weight="0.6" 
     android:orientation="horizontal" > 

    <Button 
     android:id="@+id/button1" 
     android:layout_width="0px" 
     android:layout_height="fill_parent" 
     android:layout_weight="0.4" 
     android:text="Button" /> 

    <Button 
     android:id="@+id/button2" 
     android:layout_width="0px" 
     android:layout_height="fill_parent" 
     android:layout_weight="0.6" 
     android:text="Button" /> 

    </LinearLayout> 


    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="0px" 
     android:layout_weight="0.4" 
     android:orientation="horizontal" > 

    <Button 
     android:id="@+id/button3" 
     android:layout_width="0px" 
     android:layout_height="fill_parent" 
     android:layout_weight="0.4" 
     android:text="Button" /> 

    <Button 
     android:id="@+id/button4" 
     android:layout_width="0px" 
     android:layout_height="fill_parent" 
     android:layout_weight="0.6" 
     android:text="Button" /> 

    </LinearLayout> 



</LinearLayout> 
+0

@ Lucè Brùlè Avez-vous tester mon code –

+0

Salut, merci! Ça a marché. Si je veux que les boutons soient aussi hauts que larges, dois-je le faire en code? –

+0

@ Lucè Brùlè Salut, par OK. –

0

Je commencer à placer les deux premiers boutons à l'intérieur d'une LinearLayout horizontale, et la seconde 2 sur un autre LinearLayout horizontal . Puis ajoutez du rembourrage aux boutons pour les séparer. En ce qui concerne les 40%, vous pouvez peut-être jouer avec l'attribut poids XML.

3

Comme l'a souligné dans ce Romain Guyanswer:

Vous ne pouvez pas utiliser des pourcentages pour définir les dimensions d'une vue à l'intérieur d'un RelativeLayout. La meilleure façon de le faire est d'utiliser LinearLayout et des poids, ou une mise en page personnalisée.

Donc ce que vous cherchez est un LinearLayout et l'attribut android:layout_weight.

Le code suivant va créer la mise en page de votre capture d'écran:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" 
    android:padding="10dp" > 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" > 

     <Button 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:text="1" /> 

     <Button 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:text="2" /> 
    </LinearLayout> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" > 

     <Button 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:text="3" /> 

     <Button 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:text="4" /> 
    </LinearLayout> 

</LinearLayout> 

Et le résultat:

enter image description here

+0

remercient, aussi de ce travail. :) –