2012-01-27 1 views
0

J'ai conçu des tiroirs de bouton Android colorés et les ai mis dans une TableLayout. Le problème est que les boutons par défaut d'Android ne prennent pas toute l'espace de la cellule, mais mes drawables font (Voir les images attatched). Comment puis-je ajuster mon XML pour que mes drawables laissent un peu d'espace comme les boutons par défaut? J'ai collé le code XML en bas.Android: Comment empêcher les boutons personnalisés de prendre tout l'espace de cellule disponible dans un TableLayout?

Boutons personnalisés:

Custom buttons taking all available cell space

Boutons par défaut:

Default buttons leave gaps

XML CODE:

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 

    <item android:state_pressed="true"><shape> 
      <gradient android:angle="90" android:endColor="@color/dark_red" android:startColor="@color/brick_red" /> 

      <corners android:radius="10dip" /> 

      <padding android:bottom="10dip" android:left="10dip" android:right="10dip" android:top="10dip"></padding> 

     </shape></item> 
    <item android:state_focused="true"><shape> 
      <gradient android:angle="270" android:endColor="@color/dark_red" android:startColor="@color/brick_red" /> 

      <corners android:radius="10dip" /> 

      <padding android:bottom="10dip" android:left="10dip" android:right="10dip" android:top="10dip" /> 
     </shape></item> 
    <item><shape> 
      <gradient android:angle="270" android:endColor="@color/dark_red" android:startColor="@color/red" /> 

      <corners android:radius="10dip" /> 

      <padding android:bottom="5dip" android:left="5dip" android:right="5dip" android:top="5dip" /> 
     </shape></item> 

</selector> 

Merci pour votre aide :)

+1

Peut-être que vous pouvez essayer de déplacer le rembourrage du sélecteur aux vues réelles? –

+0

Cela aurait plus de sens! Aurait dû le faire avant. –

Répondre

1

Avez-vous essayé d'utiliser le Haut, Gauche, Bas et attributs droit des éléments? Voir: How to add padding to gradient <shape> in Android?

Alternativement, dans votre mise en page finale qui utilise le bouton, vous pouvez utiliser l'attribut: android:layout_margin(Right,Left,Top,Bottom)

+0

Que layout_margin a fait l'affaire. Est-il possible de définir la marge du bouton dans le XML du bouton lui-même? J'ai regardé à travers la liste des paramètres disponibles d'IntelliSense, et je n'ai pas pu le trouver. –

+0

si vous pensez que le sélecteur xml, vous devriez essayer de l'android: haut, android: à gauche, android: bas et android: à droite dans la balise articles de votre sélecteur xml. Ou pour le rendre plus propre, mais avec la surcharge de création d'un nouveau fichier, créez un button_with_padding.xml, ajoutez juste un élément référençant le xml que vous avez déjà comme dessinable et définissez les valeurs haut, gauche, droite et bas. – Yahel

Questions connexes