Как получить фактические координаты изображения с помощью сенсорного ввода в ImageView? - PullRequest
0 голосов
/ 29 сентября 2019

Я хочу получить фактические координаты X и Y изображения в ImageView, используя сенсорную функцию.

Пока что я получаю только координаты в ImageView, который имеет размер 800x600.Мое изображение будет в основном иметь более высокое разрешение, чем это.Как мне это сделать?

MainActivity.java

private void addTouchListener(){
        ImageView image = findViewById(R.id.result);

        image.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View view, MotionEvent motionEvent) {
                float x = motionEvent.getX();
                float y = motionEvent.getY();

                String message = String.format("Coordinates: (%.1f, %.1f)", x, y);

                Log.d(MainActivity.DEBUGTAG, message);

                return false;
            }
        });

    }

activity_main.xml

 <ImageView
        android:id="@+id/result"
        android:layout_width="330dp"
        android:layout_height="250dp"
        android:layout_marginTop="150dp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        android:scaleType="fitXY"
        android:adjustViewBounds="true"
        app:srcCompat="@drawable/leaf" 
/>

Ответы [ 2 ]

0 голосов
/ 29 сентября 2019

Вид изображения Asume подобен положению камеры xv, yv в самом большом изображении.XinImage = xtouch + xv YinImage = ytouch + yv

0 голосов
/ 29 сентября 2019

вам нужно будет сделать расчет между шириной просмотра изображения и фактической шириной изображения.и то же самое с высотой.Вы найдете этот ответ полезным Проверьте это

...