1
votes

ImageButton avec coin arrondi utilisant uniquement xml?

J'essaye de créer un ImageButton comme celui-ci

 c'est le type de bouton que j'essaie de répliquer

cependant, je n'arrive pas à trouver un moyen de le faire en utilisant uniquement xml. J'ai essayé des bibliothèques personnalisées, elles ne semblent pas fonctionner parfaitement. n'y a-t-il pas d'autre moyen? que puis-je faire au lieu d'utiliser ImageButton?


3 commentaires

il y a beaucoup de texte sur ce bouton. Je pense que vous devriez utiliser une mise en page et placer toutes les vues à l'intérieur, puis définir son arrière-plan sur celui avec des coins arrondis, et y ajouter un écouteur de clic


Eh bien, je ne veux pas exactement cela, je veux qu'une image ait cette forme. J'aurai des informations codées en dur directement sur l'image en utilisant Photoshop.


Donc, si l'équilibre change, vous avez un autre texte codé en dur sur l'image? Qu'est-ce qui vous fait penser que Photoshop et Image est la réponse?


3 Réponses :


0
votes

Voici un code xml.

1.Créez un fichier xml dans votre dossier pouvant être dessiné comme button.xml et collez le balisage suivant:

<Button
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:padding="10dp"
    android:textColor="#ffffff"
    android:background="@drawable/mybutton"
    android:text="Buttons" />

2.Maintenant utilisez ce dessinable pour l'arrière-plan de votre vue. Si la vue est un bouton, alors quelque chose comme ceci:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:state_pressed="true" >
        <shape android:shape="rectangle"  >
            <corners android:radius="3dp" />
            <stroke android:width="1dp" android:color="#5e7974" />
            <gradient android:angle="-90" android:startColor="#345953" android:endColor="#689a92"  />            
        </shape>
    </item>
    <item android:state_focused="true">
        <shape android:shape="rectangle"  >
            <corners android:radius="3dip" />
            <stroke android:width="1dip" android:color="#5e7974" />
            <solid android:color="#58857e"/>       
        </shape>
    </item>  
    <item >
       <shape android:shape="rectangle"  >
            <corners android:radius="3dip" />
            <stroke android:width="1dip" android:color="#5e7974" />
            <gradient android:angle="-90" android:startColor="#8dbab3" android:endColor="#58857e" />            
       </shape>
    </item>
</selector>

Crédits à cette réponse


2 commentaires

Mais mon exigence est d'ajouter une image en arrière-plan, comment puis-je faire cela?


Vous pouvez utiliser ImageButton pour remplacer le Button



0
votes

Créez un fichier XML à l'intérieur de drawable.

    android:background="@drawable/buttonShape"

, puis à l'intérieur de votre imageButton ou autre.

<shape
      android:shape="rectangle"
        xmlns:android="http://schemas.android.com/apk/res/android">

    <corners
            android:radius="28dp"
    />

    <solid
        android:color="#00BADE"
/>
</shape>

p>


0 commentaires

0
votes

Vous pouvez utiliser la vue carte avec le rayon du coin de la carte

<android.support.v7.widget.CardView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:cardCornerRadius="4dp"/>

Et ajouter le bouton image dans la vue carte


1 commentaires

@Shashank Shetty, vous pouvez essayer ceci.