Dans une application sur laquelle je travaille, j'ai plusieurs boutons ImageButtons. Chaque ImageButton a un arrière-plan et un contenu sous la forme d'un dessin. Pour le moment, la taille du dessin est au maximum dans les limites du ImageButton, mais je veux qu'il soit réduit, donc j'ai besoin d'ajouter un peu de remplissage. Le fait est que lorsque j'essaie de faire cela, cela n'a aucun effet. Mon XML est comme suit pour chaque ImageButton:
<ImageButton
Android:id="@+id/button_zero"
Android:layout_width="0dip"
Android:layout_height="wrap_content"
Android:layout_weight="1"
Android:padding="10dip"
Android:src="@drawable/button_zero"
Android:background="@drawable/button_background" />
Des idées pour lesquelles le rembourrage ne fait rien?
Code XML complet:
<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:tools="http://schemas.Android.com/tools"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:background="#222222"
tools:context=".Main" >
<LinearLayout
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:orientation="vertical" >
<!-- Row One -->
<LinearLayout
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:orientation="horizontal" >
<ImageButton
Android:id="@+id/button_zero"
Android:layout_width="0dip"
Android:layout_height="wrap_content"
Android:layout_weight="1"
Android:padding="10dip"
Android:src="@drawable/button_zero"
Android:background="@drawable/button_front" />
<ImageButton
Android:id="@+id/button_one"
Android:layout_width="0dip"
Android:layout_height="wrap_content"
Android:layout_weight="1"
Android:padding="10dip"
Android:src="@drawable/button_one"
Android:background="@drawable/button_front" />
<ImageButton
Android:id="@+id/button_two"
Android:layout_width="0dip"
Android:layout_height="wrap_content"
Android:layout_weight="1"
Android:padding="10dip"
Android:src="@drawable/button_two"
Android:background="@drawable/button_front" />
<ImageButton
Android:id="@+id/button_three"
Android:layout_width="0dip"
Android:layout_height="wrap_content"
Android:layout_weight="1"
Android:padding="10dip"
Android:src="@drawable/button_three"
Android:background="@drawable/button_front" />
<ImageButton
Android:id="@+id/button_four"
Android:layout_width="0dip"
Android:layout_height="wrap_content"
Android:layout_weight="1"
Android:padding="10dip"
Android:src="@drawable/button_four"
Android:background="@drawable/button_front" />
</LinearLayout>
... same for other rows
</LinearLayout>
Vous devez ajouter à votre définition ImageButton
Android:scaleType="fitCenter"
ou un autre type d'échelle comme fitXY, car, par défaut, l'image tente de redimensionner autant que possible et ignore le remplissage
Le remplissage n'a d'effet que sur l'attribut Android:src
et non sur le Android:background
.
Définissez le premier sur votre image de bouton et le dernier sur Android:background="@Android:color/transparent"