La classe Button par défaut d'Android fournit un très gros bouton.
Il y a beaucoup d'espace perdu autour. Maintenant, je veux créer de très petits boutons, qui ne sont que légèrement plus gros que le texte/la légende. Comment faire cela à partir du code? Jusqu'à présent, j'ai trouvé la méthode suivante, mais elle fournit toujours des boutons trop gros et gaspille trop d'espace:
A. Créez un XML (smallbutton.xml) dans res/layout:
<?xml version="1.0" encoding="utf-8"?>
style="?android:attr/buttonStyleSmall"
Android:text="color"
Android:padding="0dp"
Android:layout_margin="0dp"
Android:textSize="8dp"
Android:maxHeight="2dp"
Android:maxWidth="2dp"
/>
B. À partir de votre code, gonflez ceci et ajoutez à la vue:
Button pickBackColor = (Button) this.getLayoutInflater().inflate(R.layout.smalbutton,null);
...
LinearLayout linLayout = new LinearLayout(this);
linLayout.addView(pickBackColor);
Maintenant, le problème est que le bouton est encore trop gros, il utilise trop d'espace autour (à gauche, à droite, au-dessus, en dessous) du texte.
Une indication sur la façon de réduire davantage la taille du bouton?
Les boutons ont une hauteur et une largeur minimales (généralement de 48dp respectivement 64dp par défaut). Alors ajoutez
Android:minHeight="0dp"
Android:minWidth="0dp"
pour obtenir de très petits boutons:
Pour votre information, il existe également le style par défaut fourni par Android qui définit les petits boutons:
style="?android:attr/buttonStyleSmall"
Vous pouvez également, si nécessaire, modifier ce style par défaut et définir des attributs personnalisés dans votre fichier styles.xml. Voici un exemple avec les modifications décrites dans la question:
<style name="MyButtonStyleSmall" parent="Android:Widget.Button.Small">
<!-- Customizations -->
<item name="Android:minHeight">0dp</item>
<item name="Android:minWidth">0dp</item>
</style>
Ensuite, il vous suffit de l'appeler dans le XML:
<Button
Android:id="@+id/small_button"
Android:text="@string/example"
Android:contentDescription="@string/example_desc"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
style="@style/MyButtonStyleSmall" />
essayez ceci dans votre code:
pickBackColor.setWidth(VALUE);
pickBackColor.setHeight(VALUE);
dans le fichier .xml ... vous devez passer une petite valeur à layout_height et layout_width dans le fichier xml ...... essayez ceci.
Android:layout_width="50dp" Android:layout_height="50dp"
Changez la valeur selon votre condition ...