Как определить маркеры на изображении на сенсорном событии?

Когда пользователь касается любого места на изображении, оно должно быть помечено крестиком. Также мы должны очистить этот крест нажатием кнопки. Мне удалось отобразить изображение. Что мне нужно сделать в функции ontouchlistener() для отображения точки пересечения?

mapImage.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View view, MotionEvent e) {
            return gestureDetector.onTouchEvent(e);  }
    });     final GestureDetector gestureDetector = new GestureDetector(this, new GestureDetector.SimpleOnGestureListener() {
        @Override
        public boolean onSingleTapConfirmed(MotionEvent e) {
            if (mapImage.isReady()) {
                PointF sCoord = mapImage.viewToSourceCoord(e.getX(), e.getY());

                Matrix inverse = new Matrix();
                mapImage.getMatrix().invert(inverse);

                float[] touchPoint = new float[]{e.getX(), e.getY()};
                inverse.mapPoints(touchPoint);


                Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.plus);
                Bitmap resized = Bitmap.createScaledBitmap(bmp, 50, 50, true);

                Canvas ca = new Canvas(resized);
                Paint pa = new Paint();
                pa.setStyle(Paint.Style.STROKE);
                pa.setAntiAlias(true);
                //pa.setStrokeCap(Paint.Cap.ROUND);
                pa.setStrokeWidth((float)3);
                pa.setARGB(251, 20, 20, 20);
                float cx = e.getX() + 10 + (8*e.getX()/100);
                float cy = e.getY() + 10 + (6*e.getY()/100);

                ca.drawCircle(cx, cy, 13, pa);
                mapImage.setImage(ImageSource.bitmap(resized));

            } else {
                Toast.makeText(getApplicationContext(), "Single tap: Image not ready", Toast.LENGTH_SHORT).show();
            }
            return true;
        }});

Заранее спасибо.

0 ответов

Другие вопросы по тегам