7
votes

Comment définir les paramètres d'un bouton par programme

J'essaie d'ajouter une bande de boutons à une mise en page comme celle-ci: XXX PRE>

Mon problème est comment puis-je le faire par programme à tous les boutons: P>

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:textSize="32dip" />


0 commentaires

5 Réponses :


3
votes

Utilisez layoutParams pour la hauteur, la largeur et la gravité avec xxx

où vous pouvez utiliser wrap_content pour l'INTS.

alors il y a bouton.setgravity () et bouton.settextsize () pour les deux derniers.

espère que cela aide cela aide.


2 commentaires

Comment puis-je spécifier DIP en utilisant le bouton.SetTextsize ()?


Public Void Settextsize (unité INT, taille de flotteur); où l'unité est "complexité_unit_dip" et taille = la taille du texte.



0
votes

Vous utiliseriez un objet LayOutParams pour les paramètres de mise en page et pour définir la taille du texte Utilisez Settextsize () à partir du bouton Classe.

Vous pouvez définir la gravité avec Setgravity () < / a> aussi.


0 commentaires

0
votes

Textsize n'est pas intérieur des paramètres de layout. Pour définir Textsize, vous devez

button.setTextSize(32);


0 commentaires

4
votes

LayoutParams code> concerne le parent Viewgroup code> qui contiendra la vue. Donc, dans votre cas, c'est un linearlayout code> de sorte que vous devez créer des paramètres pour celui-ci. Voici ce dont je parle:

LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
    LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
lp.weight = 1f;

Button button = new Button(this);
button.setLayoutParams(lp);
button.setText("" + i);
((LinearLayout)dialog.findViewById(R.id.Buttons)).addView(button);


0 commentaires

19
votes

Définissez vos attributs à l'aide du code suivant:

button.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 32);


6 commentaires

J'ai des problèmes avec la gravité cependant. Setgravity (gravity.center_horizontal) ne fait pas la même chose que Android: Layout_gravity = "Centre_horizontal" dans le fichier XML. Le bouton XML Fichier est centré, mais pas ceux créés avec SetGravity ().


Essayez-le avec les paramètres de la mise en page: linearlayout.layoutparams parames = nouveau linearlayout.layoutparams (layoutparams.wrap_content, layoutparams.wrap_content, gravity.center_horizontal);


Ou après l'initialisation des params appelle: parames.gravity = gravity.center_horizontal;


La gravité de la raison ne fonctionne pas comme vous le souhaitez, c'est parce que Android: La gravité est différente de Android: layout_gravité


Merci, mais je l'ai compris. Au lieu de régler layout_gravité sur chaque bouton, je définit la gravité sur la vue du parent linéarlayout.


Cela fonctionne aussi. Vous permet de définir la valeur sur chaque bouton.