web-dev-qa-db-fra.com

Comment puis-je étendre l'image dans imagebutton à toute la zone de l'imagebutton?

Voici une photo qui vous aidera à comprendre mon problème:

It's a "1"

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.

19
user2051993

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.

55
Leonidos

Vous pouvez aussi utiliser

Android:scaleType="centerCrop"
Android:padding="0dp"
7
zackygaurav

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" />
2
duggu

Android:scaleType="fitXY" testé et fonctionne correctement.

1
danny117

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

1
Andrea Bresolin

Si votre image "111" n'a pas de remplissage, utilisez simplement Android: background "@ drawable/111"

0
Josh