Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Android] Mettre des coins arrondis sur une image

    12 mai 2020 à 12:27:12

    Bonjour,

    Je suis développeur débutant sous Android.
    Dans le cadre d'un projet, je souhaite appliquer un style à une image (avoir des coins arrondis).
    Je pensais utiliser ShapeDrawable qui semble assez simple de prime abord.

    Dans le layout de mon fragment :


    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".Fragments.PresFragment"
        android:orientation="vertical">
     
        <TextView
            android:id="@+id/fragment_pres_txt"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="20dp"
            android:padding="30dp"
            android:textColor="#1E609A"
     
            android:text="Présentation..." />
        <ImageView
            android:id="@+id/imageView"
            android:layout_marginTop="20dp"
            android:layout_marginBottom="10dp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/image"
            android:background="@drawable/rounded_image">
        </ImageView>
     
    </LinearLayout>

    Je fais donc référence au XML rounded_image suivant :


    <?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android"
        android:shape="rectangle">
        <corners
            android:radius="50dp" />
    </shape>

    Ici le cas est très simple mais j'ai fait d'autres essais.

    Mon problème est donc qu'il ne se passe rien.
    Comment applique-t-on un style à un image ? Dois-je nécessairement passer par du développement Java spécifique ?

    J'ai trouvé cette page : https://webdevdesigner.com/q/how-to-make-an-imageview-with-rounded-corners-40908/

    Mais je ne comprends pas comment faire le lien entre le chemin de mon image et mon imageview sachant que j'utilisais aussi la propriété android:background pour indiquer où il se trouve.

    Merci à vous !

    Si vous avez une solution pas trop compliquée (j'ai vu qu'on pouvait passer par imageloader mais je ne connais pas du tout comment ça marche), je suis aussi preneur !


    Judicaël.


    • Partager sur Facebook
    • Partager sur Twitter
      24 mai 2020 à 17:54:21

      Salut,

      As tu essayé de mettre ton image dans une CardView ? De plus de nombreuses solutions existent sur internet. 

      Tu peux regarder la réponse à ce poste :  https://stackoverflow.com/questions/2459916/how-to-make-an-imageview-with-rounded-corners/15032283#15032283 Ou celui ci qui utilises les drawables https://stackoverflow.com/questions/31675420/set-round-corner-image-in-imageview/44060979#44060979

      Tu peux aussi utilises cette librairie qui te permet de rajouter des coins arrondi sur n’importe quelle View : https://github.com/florent37/ShapeOfView

      • Partager sur Facebook
      • Partager sur Twitter
        15 mai 2024 à 11:20:15

        Bonjour,

        J'ai réussi en utilisant un com.google.android.material.imageview.ShapeableImageView :

        <com.google.android.material.imageview.ShapeableImageView
        android:id="@+id/fragment_review_imgUser"
        ....
        android:src="@drawable/avatarpreview"
        app:shapeAppearanceOverlay="@style/roundedImageView"
        />

        Dans les styles :
        <style name="roundedImageView" >
        <item name="cornerFamily">rounded</item>
        <item name="cornerSize">50%</item>
        </style>


        • Partager sur Facebook
        • Partager sur Twitter

        [Android] Mettre des coins arrondis sur une image

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        • Editeur
        • Markdown