3
votes

Vous voulez ajouter une icône sur Button, drawableTop ne fonctionne pas Android

Je souhaite ajouter l'icône d'appel sur le Button mais drawableTop ne fonctionne pas.

<LinearLayout
        android:layout_width="match_parent"
        android:layout_height="60dp">
        <Button
            android:id="@+id/imageView3"
            android:layout_width="wrap_content"
            android:drawableTop="@android:drawable/ic_menu_call"
            android:layout_height="match_parent"
            android:layout_weight="1" />
    </LinearLayout>

 entrez la description de l'image ici p >


4 commentaires

et aussi en utilisant votre même code, je peux voir drawableTop


En fait, j'utilise android: drawableLeft et cela ne fonctionne pas non plus.


Y a-t-il un cas où la couleur de teinte de votre dessin est la même que la couleur d'arrière-plan?


utilisez-vous par hasard une nouvelle bibliothèque de matériaux au lieu d'une bibliothèque de support de conception?


4 Réponses :


1
votes

Ajoutez une orientation à votre LinearLayout , décidez si vous souhaitez définir android: layout_weight lors de la configuration de android: layout_width = "wrap_content" et < code> android: layout_height = "match_parent" et définissez le texte sur votre bouton.


0 commentaires

1
votes

Vous pouvez également définir l'icône dans drawableStart comme suit:

                    <Button
                        android:id="@+id/imageView3"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:background="@color/black_overlay"
                        android:drawableStart="@drawable/ic_menu_call"
                        android:padding="15dp"
                        android:text="Click here"
                        android:textStyle="bold" />

Le remplissage, le style du texte et la couleur d'arrière-plan sont uniquement destinés à la décoration. p>


0 commentaires

7
votes

Remplacez votre Button par AppCompatButton

<LinearLayout
        android:layout_width="match_parent"
        android:layout_height="60dp">

        <android.support.v7.widget.AppCompatButton
            android:id="@+id/imageView3"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:drawableTop="@android:drawable/ic_menu_call"/>
</LinearLayout>


2 commentaires

utilisez-vous une nouvelle bibliothèque de matériaux à la place de la bibliothèque de support?


J'utilise com.android.support:design:28.0.0



2
votes

lorsque vous utilisez androidx avec la bibliothèque Material Ui au lieu de la bibliothèque de support

<androidx.appcompat.widget.AppCompatButton
    android:id="@+id/button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:drawableTop="@android:drawable/ic_menu_camera"
    android:text="Camera" />

, vous devrez utiliser

implementation 'com.google.android.material:material:1.0.0'


1 commentaires

Connaissez-vous la raison pour laquelle nous devons utiliser drawableTop au lieu de icon?