Définir la largeur du bouton dans Android

Comment puis-je définir une largeur fixe pour un bouton Android? Chaque fois que j’essaie de définir une largeur fixe, il remplit le parent actuel (le RelativeView). Voici mon XML:

       

Comment pourrais-je lui donner une largeur FIXE?
METTRE À JOUR
Supposons que j’ai plusieurs boutons de même taille et 1/3 de la vue complète (Portrait), puis un bouton double de la largeur. Puis un bouton avec le double de la hauteur. Comment pourrais-je accomplir cet autre qui les dimensionnant manuellement?

Pour accomplir ce que vous voulez, vous pouvez utiliser un LinearLayout avec un poids. Par exemple, vous pouvez mettre un WeightSum de 9. Si vous placez le poids de trois boutons à 1. Ils prendront 1/3 de la place, et vous pouvez en mettre 2 pour un autre object. Cet object sera deux fois plus grand que l’autre.

http://developer.android.com/reference/android/widget/LinearLayout.html#setWeightSum(float)

Edit: Je voudrais append que pour que cela fonctionne correctement, vous devez définir la largeur ou la hauteur sur 0px (selon qu’il s’agisse d’une disposition horizontale ou verticale).

Au lieu de android:layout_width="wrap_content" vous pouvez utiliser une taille de pixel fixe, comme par exemple android:layout_width="20px" ou une meilleure méthode: android:layout_width="20dp"

vous pouvez également définir la largeur par programmation dans le code: Button.setWidth(int width)

Concernant votre mise à jour:

Je ne sais pas si c’est une bonne solution, mais je travaille. Vous pourriez utiliser

  DisplayMesortingcs mesortingcs = new DisplayMesortingcs(); getWindowManager().getDefaultDisplay().getMesortingcs(mesortingcs); 

pour lire la résolution de l’écran, puis définir la taille des boutons en fonction de mesortingcs.widthPixel et mesortingcs.heightPixel

Utilisez minWidth et minHeight pour définir la largeur et la hauteur d’un bouton.

  

Le moyen le plus simple et le plus simple de définir un bouton de manière dynamic est

  Button index=new Button(this); int height = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 45, getResources().getDisplayMesortingcs()); int width = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 42, getResources().getDisplayMesortingcs()); 

La hauteur et la largeur en pixels px . 45 étant la hauteur en dp et 42 étant la largeur en dp .

  index.setLayoutParams(new .LayoutParams(width, height)); 

Ainsi, par exemple, si vous avez placé votre bouton dans un TableRow dans un TableLayout, vous devriez l’avoir sous la forme TableRow.LayoutParams.

  index.setLayoutParams(new TableRow.LayoutParams(width, height)); 

ajoutez android:minwidth ligne android:minwidth dans ce code.