J'essaie d'ajouter une bande de boutons à une mise en page comme celle-ci: 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" />
5 Réponses :
Utilisez layoutParams pour la hauteur, la largeur et la gravité avec où vous pouvez utiliser alors il y a espère que cela aide cela aide. P> P> wrap_content code> pour l'INTS. P>
bouton.setgravity () code> et
bouton.settextsize () code> pour les deux derniers. p>
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.
Vous utiliseriez un objet Vous pouvez définir la gravité avec Setgravity () < / a> aussi. p> LayOutParams code> pour les paramètres de mise en page et pour définir la taille du texte Utilisez Settextsize () à partir du bouton code> Classe. P>
Textsize n'est pas intérieur des paramètres de layout. Pour définir Textsize, vous devez
button.setTextSize(32);
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);
Définissez vos attributs à l'aide du code suivant:
button.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 32);
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.