Ajuster la taille d'un ImageButton dans Android

Est-ce qu'il y a un moyen de faire ça? J'ai essayé de remplacer l'image et de définir la largeur / hauteur de la vue, mais cela ne semble pas fonctionner. Voici un exemple:

<ImageButton android:id="@+id/search" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/search_small" android:paddingTop="4sp" android:paddingBottom="4sp" android:paddingLeft="6sp" android:paddingRight="6sp" android:layout_marginRight="10sp" android:layout_marginTop="6sp" android:layout_marginBottom="6sp" android:layout_alignParentRight="true" /> 

Je veux que le bouton soit plus large qu'il est grand, mais il se présente à l'inverse.

  • Comment fusionner certains objets spannable?
  • Threading Exemple dans Android
  • Android Gradle: renommer / désactiver le type de construction par défaut
  • Enregistrement du fichier à l'aide de Storage Access Framework dans Android
  • Couchbase Lite sur Android L
  • Android avec maven? Apk inconnu
  • 6 Solutions collect form web for “Ajuster la taille d'un ImageButton dans Android”

    Juste une pièce à jouer pour essayer de comprendre votre problème.

    ImageButton semble que ImageButton est une vue composite qui présente quelques valeurs prédéfinies. Comme une sorte de marge que vous ne pouvez pas ignorer avec le XML. Si vous ne pouvez pas changer votre image pour correspondre à ce que vous voulez arriver, il est préférable de créer votre propre vue composite.

    Voici mon exemple d'une vue composite que vous pouvez faire:

      <FrameLayout android:layout_width="wrap_content" android:layout_height="wrap_content"> <Button android:id="@+id/saveSearchButton" android:layout_width="50dp" android:layout_height="50dp" /> <ImageView android:layout_width="45dp" android:layout_height="45dp" android:scaleType="fitXY" android:src="@drawable/ic_menu_save" android:layout_gravity="center"/> </FrameLayout> <FrameLayout android:layout_width="wrap_content" android:layout_height="wrap_content"> <Button android:id="@+id/clearSearchButton" android:layout_width="50dp" android:layout_height="50dp" /> <ImageView android:layout_width="45dp" android:layout_height="45dp" android:scaleType="fitXY" android:src="@drawable/ic_menu_close_clear_cancel" android:layout_gravity="center"/> </FrameLayout> 

    Et les boutons d'origine:

      <ImageButton android:id="@+id/imageButton1" android:src="@drawable/ic_menu_save" android:layout_height="45dp" android:layout_width="45dp"/> <ImageButton android:id="@+id/imageButton2" android:src="@drawable/ic_menu_close_clear_cancel" android:layout_height="45dp" android:layout_width="45dp"/> 

    Ici, nous pouvons voir une image personnalisée / bouton composite suivie de la construction dans ImageButton dans le SDK:

    Exemple

    Définir android:background au lieu d' android:src pour définir l'image sur le bouton. Cela ajustera l'image à la taille de votre bouton. Ensuite, réglez le rembourrage après.

    Vous ne devez pas utiliser sp comme une dimension de taille – dp devrait être utilisé car il aidera votre vue à se dimensionner directement avec différentes densités et résolutions d'écran. Voir ici pour les dimensions.

    padding poussera d'autres éléments loin de la limite de votre vue. margin va pousser le contenu de votre vue vers l'intérieur à partir de votre limite (c.-à-écouler l'espace disponible pour votre image). La limite est spécifiée par hauteur et largeur. Sans plus d'informations, je suppose que vous êtes confondu par vos marges – supprimez-les et expérimentez.

    Aussi utile pour vous: android:scaleType="fitXY" fait que l'image s'étende pour correspondre à la fois aux dimensions X et Y qui sont disponibles. Cela vous aide à voir la toile à la disposition de votre image. Une fois que vous sentez que la zone est assez grande pour une image à l'échelle correcte, modifiez le type d'échelle en centreInside. Voir ici pour tous les types d'échelle.

    J'utilise les attributs minWidth et minHeight , combiné à un type d'échelle fitXY et enveloppant son contenu pour moduler la forme de mon bouton.

    Vous voulez rendre votre bouton "plus large", donc, par exemple, en imprimant un bouton 200X100 sur une icône carrée, vous pouvez le définir comme ça:

     <ImageButton android:id="@+id/fooButton" android:src="@drawable/play_button" android:backgroundTint="#00000000" android:minWidth="200" android:minHeight="100" android:scaleType="fitXY" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="playStuff" /> 

    Entrez la description de l'image ici

    Pouvez-vous expliquer votre question plus largement afin que nous puissions mieux comprendre.

    Selon ma compréhension, vous souhaitez définir votre hauteur / largeur ImageButton. Mais ça ne marche pas, n'est-ce pas? Je tiens à vous demander que, si vous écrivez une hauteur / largeur spécifique, cela ne fonctionne pas non plus?

    J'ai copié votre code dans mes fichiers et j'ai changé la taille / la largeur manuellement, cela fonctionnera.

    Expliquez votre question.

    Merci.

    J'ai fini la mise en page suite à la réponse de Graeme. Quatre "imageButton" corrigent le fond, la même largeur, la taille de l'image modifiable. Merci!

      <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_alignParentLeft="true" android:background="@color/#000" android:weightSum="100" > <FrameLayout android:id="@+id/flBottom1" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="25" > <Button android:id="@+id/ibBottom1" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@drawable/detail_tab_bg_selector"/> <ImageView android:layout_width="32dp" android:layout_height="32dp" android:scaleType="fitXY" android:src="@drawable/icon_home_48_48" android:layout_gravity="center_horizontal" android:layout_marginTop="5dp" /> <TextView android:id="@+id/tvBottom1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center" android:layout_gravity="center_horizontal" android:layout_marginTop="35dp" android:text="@string/bailty_text_home" style="@style/bailtyTextBottom" /> </FrameLayout> <FrameLayout android:id="@+id/flBottom2" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="25" > <Button android:id="@+id/ibBottom2" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@drawable/detail_tab_bg_selector"/> <ImageView android:layout_width="32dp" android:layout_height="32dp" android:scaleType="fitXY" android:src="@drawable/icon_compose_48_48" android:layout_gravity="center_horizontal" /> <TextView android:id="@+id/tvBottom2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center" android:layout_gravity="center_horizontal" android:layout_marginTop="35dp" android:text="@string/bailty_text_comment" style="@style/bailtyTextBottom" /> </FrameLayout> <FrameLayout android:id="@+id/flBottom3" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="25" > <Button android:id="@+id/ibBottom3" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@drawable/detail_tab_bg_selector"/> <ImageView android:layout_width="32dp" android:layout_height="32dp" android:scaleType="fitXY" android:src="@drawable/icon_search_48_48" android:layout_gravity="center_horizontal" /> <TextView android:id="@+id/tvBottom3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center" android:layout_gravity="center_horizontal" android:layout_marginTop="35dp" android:text="@string/bailty_text_search" style="@style/bailtyTextBottom" /> </FrameLayout> <FrameLayout android:id="@+id/flBottom4" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="25" > <Button android:id="@+id/ibBottom4" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@drawable/detail_tab_bg_selector"/> <ImageView android:layout_width="32dp" android:layout_height="32dp" android:scaleType="fitXY" android:src="@drawable/icon_barcode_48_48" android:layout_gravity="center_horizontal" /> <TextView android:id="@+id/tvBottom4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center" android:layout_gravity="center_horizontal" android:layout_marginTop="35dp" android:text="@string/bailty_text_scan_again" style="@style/bailtyTextBottom" /> </FrameLayout> </LinearLayout> 
    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.