web-dev-qa-db-fra.com

Comment créer de très petits boutons dans Android à partir du code?

La classe Button par défaut d'Android fournit un très gros bouton.

button with caption "Save"

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.

enter image description here

Une indication sur la façon de réduire davantage la taille du bouton?

35
user898160

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:

enter image description here

133
Maarten Pennings

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" />
9
Yoann Hercouet

essayez ceci dans votre code:

pickBackColor.setWidth(VALUE);
pickBackColor.setHeight(VALUE);
0
Boe-Dev

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 ...

0
Sandip Armal Patil