Partage
  • Partager sur Facebook
  • Partager sur Twitter

Une image avec plusieurs points cliquables

    17 mars 2018 à 14:26:09

    Bonjour à toutes et à tous !

    Je suis jeune développeur sous Android Studio, logiciel qui porte par ailleurs mon projet actuel.

    Sur cette image, il y a plusieurs monstres (cette image n'est pas faite par les créateurs). Ce que je veux, c'est de pouvoir cliquer sur un monstre et faire apparaître une popup avec des infos mais cela, je sais à peu près gérer. De cette envie, je ne vois, en tant que dev débutant, que 2 solutions : celle de placer des boutons à l'apparence des monstres ou celle de placer une image individuelle identique à chaque monstre. Ayant tenté cette seconde solution, le problème est que sur le layout, ça passe, mais une fois sur un appareil ou une taille d'écran différente, tout est décalé et plus rien n'est superposé.

    Si vous avez une solution alternative ou une simple solution, sous Android studio je le rappelle, je suis preneur ! Merci d'avance.

    • Partager sur Facebook
    • Partager sur Twitter
      17 mars 2018 à 21:48:21

      Si vous pouvez nous fournir des extraits de code, nous pourrions vous aidez à rendre votre rendu adaptatif (taille de l'écran, orientation, etc.)

      Je crois que vous êtes sur le chemin de la meilleure solution, soit d'avoir une vue pour chaque monstre, et non une image sur laquelle on peut cliquer à plusieurs endroits. Car cette image aussi devrait être adaptative, ainsi que la position des différents clics.

      Bref avec un peu de code, il nous fera plaisir de vous aider :)

      • Partager sur Facebook
      • Partager sur Twitter

      Tout savoir sur Android : https://www.facebook.com/welearnandroid/?ref=bookmarks

        18 mars 2018 à 1:17:19

        Tout d'abord, merci pour votre réponse.

        Voici le code du layout gérant l'image et les monstres sur lesquels cliquer :

        <?xml version="1.0" encoding="utf-8"?>
        <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
            xmlns:app="http://schemas.android.com/apk/res-auto"
            xmlns:tools="http://schemas.android.com/tools"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="@drawable/fusiontablewithnames"
            tools:context="alexandre_roy.fr.swfusionhelper.MainActivity">
        
            <ImageView
                android:id="@+id/iv_sigmarus"
                android:layout_width="35dp"
                android:layout_height="35dp"
                android:layout_alignParentTop="true"
                android:layout_alignStart="@+id/iv_jojo"
                android:layout_marginStart="19dp"
                android:layout_marginTop="11dp"
                android:adjustViewBounds="true"
                app:srcCompat="@drawable/sigmarus"
                tools:ignore="ContentDescription" />
        
            <ImageView
                android:id="@+id/iv_susano"
                android:layout_width="35dp"
                android:layout_height="35dp"
                android:layout_alignParentStart="true"
                android:layout_below="@+id/iv_sigmarus"
                android:layout_marginStart="11dp"
                android:layout_marginTop="23dp"
                android:adjustViewBounds="true"
                app:srcCompat="@drawable/susano"
                tools:ignore="ContentDescription" />
        
            <ImageView
                android:id="@+id/iv_jojo"
                android:layout_width="35dp"
                android:layout_height="35dp"
                android:layout_alignTop="@+id/iv_susano"
                android:layout_marginStart="9dp"
                android:layout_toEndOf="@+id/iv_susano"
                android:adjustViewBounds="true"
                app:srcCompat="@drawable/jojo"
                tools:ignore="ContentDescription" />
        
            <ImageView
                android:id="@+id/iv_mina"
                android:layout_width="35dp"
                android:layout_height="35dp"
                android:layout_alignTop="@+id/iv_jojo"
                android:layout_marginStart="10dp"
                android:layout_toEndOf="@+id/iv_jojo"
                android:adjustViewBounds="true"
                app:srcCompat="@drawable/mina"
                tools:ignore="ContentDescription" />
        
            <ImageView
                android:id="@+id/iv_kahn"
                android:layout_width="35dp"
                android:layout_height="35dp"
                android:layout_alignStart="@+id/iv_susano"
                android:layout_below="@+id/iv_susano"
                android:layout_marginTop="28dp"
                android:adjustViewBounds="true"
                app:srcCompat="@drawable/kahn"
                tools:ignore="ContentDescription" />
        
            <ImageView
                android:id="@+id/iv_cassandra"
                android:layout_width="35dp"
                android:layout_height="35dp"
                android:layout_alignStart="@+id/iv_jojo"
                android:layout_alignTop="@+id/iv_kahn"
                android:adjustViewBounds="true"
                app:srcCompat="@drawable/cassandra"
                tools:ignore="ContentDescription" />
        
            <ImageView
                android:id="@+id/iv_icaru"
                android:layout_width="35dp"
                android:layout_height="35dp"
                android:layout_alignStart="@+id/iv_kahn"
                android:layout_below="@+id/iv_kahn"
                android:layout_marginTop="17dp"
                android:adjustViewBounds="true"
                app:srcCompat="@drawable/icaru"
                tools:ignore="ContentDescription" />
        
            <ImageView
                android:id="@+id/iv_garoche"
                android:layout_width="35dp"
                android:layout_height="35dp"
                android:layout_alignStart="@+id/iv_cassandra"
                android:layout_alignTop="@+id/iv_icaru"
                android:adjustViewBounds="true"
                app:srcCompat="@drawable/garoche"
                tools:ignore="ContentDescription" />
        
            <ImageView
                android:id="@+id/iv_dagorr"
                android:layout_width="35dp"
                android:layout_height="35dp"
                android:layout_alignStart="@+id/iv_icaru"
                android:layout_below="@+id/iv_icaru"
                android:layout_marginTop="17dp"
                android:adjustViewBounds="true"
                app:srcCompat="@drawable/dagorr"
                tools:ignore="ContentDescription" />
        
            <ImageView
                android:id="@+id/iv_kuhn"
                android:layout_width="35dp"
                android:layout_height="35dp"
                android:layout_alignStart="@+id/iv_garoche"
                android:layout_alignTop="@+id/iv_dagorr"
                android:adjustViewBounds="true"
                app:srcCompat="@drawable/kuhn"
                tools:ignore="ContentDescription" />
        
            <ImageView
                android:id="@+id/iv_tantra"
                android:layout_width="35dp"
                android:layout_height="35dp"
                android:layout_alignStart="@+id/iv_dagorr"
                android:layout_below="@+id/iv_dagorr"
                android:layout_marginTop="16dp"
                android:adjustViewBounds="true"
                app:srcCompat="@drawable/tantra"
                tools:ignore="ContentDescription" />
        
            <ImageView
                android:id="@+id/iv_chichi"
                android:layout_width="35dp"
                android:layout_height="35dp"
                android:layout_alignStart="@+id/iv_kuhn"
                android:layout_alignTop="@+id/iv_tantra"
                android:adjustViewBounds="true"
                app:srcCompat="@drawable/chichi"
                tools:ignore="ContentDescription" />
        </RelativeLayout>

        Sur android studio et le côté graphique du layout, selon les périphériques de rendu, tout est à peu près parfaitement superposé (quelques décalages se font sur certains). Mais comme je le disais plus haut, une fois passé sur vrai périphérique, c'est la cata, plus rien n'est superposé et certaines images de monstres sont mêmes hors écran !

        • Partager sur Facebook
        • Partager sur Twitter

        Une image avec plusieurs points cliquables

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown