135 votes

Comment afficher un texte sur un ImageButton?

J'ai un ImageButton et je veux afficher un texte et une image. Mais quand j'essaie

<ImageButton 
android:text="OK" 
android:id="@+id/buttonok" 
android:src="@drawable/buttonok"
android:layout_width="match_parent" 
android:layout_height="wrap_content"/>

J'arrive sur l'Émulateur le bouton de l'image mais sans le texte. Comment puis-je montrer le texte, s'il vous plaît aidez-moi !

290voto

Cristian Points 92147

Comme vous ne pouvez pas utiliser android:text je vous recommande d'utiliser un bouton normal et utiliser un composé un drawable. Par exemple:

<Button 
    android:id="@+id/buttonok" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content"
    android:drawableLeft="@drawable/buttonok"
    android:text="OK"/>

Vous pouvez mettre le drawable où vous le souhaitez en utilisant: drawableTop, drawableBottom, drawableLeft ou drawableRight.

Mise à JOUR

Pour le Bouton de cela aussi fonctionne très bien. Mettre "android:background" est très bien !

<Button
    android:id="@+id/fragment_left_menu_login"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/button_bg"
    android:text="@string/login_string" />

Je viens d'avoir ce Problème et fonctionne parfaitement

68voto

UncleIstvan Points 349

Il est techniquement possible de mettre une légende sur un imagebutton si vous voulez vraiment le faire. Il suffit de mettre un textview sur le imagebutton à l'aide de FrameLayout. Rappelez-vous juste de ne pas rendre le Textview cliquable.

Exemple:

<FrameLayout>
    <ImageButton
        android:id="@+id/button_x"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:background="@null"
        android:scaleType="fitXY"
        android:src="@drawable/button_graphic" >
    </ImageButton>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:clickable="false"
        android:text="TEST TEST" >
    </TextView>
</FrameLayout>

4voto

Samuel Points 1509

En fait, android:text n'est pas un argument accepté par ImageButton mais, Si vous essayez d'avoir un bouton avec un certain arrière-plan (pas android par défaut) utiliser l' android:background xml attribut, ou de déclarer à partir de la classe avec .setBackground();

3voto

schwiz Points 13679

vous pouvez utiliser n' Button et android:drawableTop attribut (ou à gauche, à droite, en bas) à la place.

2voto

eloytxo Points 31

Meilleure façon:

<Button 
android:text="OK" 
android:id="@+id/buttonok" 
android:background="@drawable/buttonok"
android:layout_width="match_parent" 
android:layout_height="wrap_content"/>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X