Voici une photo qui vous aidera à comprendre mon problème:
Je souhaite étendre l’image montrée à l’intérieur de ImageButton
à l’ensemble du ImageButton
. Comme vous pouvez le constater, la photo portant le numéro 1 ne représente qu’environ 95% de ImageButton
et vous pouvez également voir les limites de ImageButton
.
Je souhaite toujours conserver le style du bouton d'image
Voici comment j'utilise ImageView:
<ImageButton
Android:id="@+id/secondActivityBbuttonDownRight"
Android:layout_width="0dip"
Android:layout_height="match_parent"
Android:layout_weight="0.5"
Android:scaleType="fitStart"
Android:src="@drawable/111" />
Je pense avoir découvert quel est mon problème . J'ai besoin d'un composant personnalisé qui ne peut contenir qu'une image et avoir un effet de clic.
ImageButton est ImageView.
Si vous voulez que votre image remplisse le bouton
que set Android:scaleType="fitXY"
, ainsi l'image que vous avez définie dans Android:src
sera étirée pour remplir le bouton de l'image entière.
ImageButton a un arrière-plan sous votre image et un remplissage.
Si vous ne voulez pas de fond
set Android:background="@Android:color/transparent"
.
Si vous ne voulez pas de rembourrage
définir Android:padding="0"
ou définir un arrière-plan sans remplissage.
Vous pouvez aussi utiliser
Android:scaleType="centerCrop"
Android:padding="0dp"
Utilisez le code ci-dessous: -
<ImageButton
Android:id="@+id/secondActivityBbuttonDownRight"
Android:layout_width="0dip"
Android:layout_height="match_parent"
Android:layout_weight="0.5"
Android:scaleType="fitStart"
Android:background="@drawable/111" />
Android:scaleType="fitXY"
testé et fonctionne correctement.
Vous devriez envisager de créer une image de 9 correctifs pour que l'image tienne correctement sur une ImageButton
au cas où vous auriez besoin de l'étirer, mais vous ne voulez pas que l'image soit déformée.
Pour avoir un bouton avec une image qui le recouvre complètement, vous pouvez utiliser quelque chose comme ceci:
<ImageButton Android:id="@+id/iconBtn"
Android:layout_width="64dip"
Android:layout_height="64dip"
Android:src="@drawable/icon_button"
Android:scaleType="fitCenter"
Android:background="#00000000"/>
Pour un tutoriel complet sur la création de boutons avec des skins personnalisés et l'utilisation de sélecteurs pour gérer leurs états, vous pouvez consulter un tutoriel que j'ai écrit il y a quelque temps ici (Création d'un bouton Android personnalisé avec un skin redimensionnable) .
Si votre image "111" n'a pas de remplissage, utilisez simplement Android: background "@ drawable/111"