Как получить событие приемника щелчка пути VectorDrawable из imageview в kotlin - PullRequest
0 голосов
/ 25 февраля 2020

Я показываю один вид изображения, который показывает карту SVG. мое требование - получить конкретное событие клика svg path. я не знаю, каков процесс или какая-либо идея об этом сценарии

это моя xml

<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"
    tools:context=".MainActivity">

    <HorizontalScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:scrollbars="none">

        <ImageView
            android:id="@+id/richPathView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/ic_map" />

    </HorizontalScrollView>

</RelativeLayout>

это моя карта svg , пожалуйста, помогите мне Как я должен получить событие клика по клику SVG-пути.

Любая помощь будет высоко ценится.

Ответы [ 2 ]

0 голосов
/ 03 марта 2020

Я нашел эту (RichPath) удивительную библиотеку, которая позволяет мне обнаруживать щелчок пути

класс

 richPathView.setOnPathClickListener { richPath ->
            if (richPath.name != null) {
                when {
                    richPath.name.toLowerCase() == "m" -> {
                        // my task
                    }
                    richPath.name.toLowerCase() == "e" -> {
                        // my task
                    }
            }
      }

XML

<HorizontalScrollView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:scrollbars="none"
        android:overScrollMode="never"
        android:layout_centerVertical="true">
        <com.richpath.RichPathView
            android:id="@+id/richPathView"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            app:vector="@drawable/ic_map" />

</HorizontalScrollView>

не знаю, является ли это правильным правильным решением или нет, но оно работает.

0 голосов
/ 25 февраля 2020

Вы не можете. Невозможно определить, по какому пути в VectorDrawable щелкнули. По крайней мере, нелегкий путь.

Единственный способ, который я знаю прямо сейчас, - это загрузить SVG в WebView. А затем вызовите метод в вашем Android приложении из Javascript.

Вызовите Java функцию из JavaScript через Android WebView

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...