Как нарисовать прямоугольник над изображением, используя onTouchevent в Android? - PullRequest
2 голосов
/ 03 марта 2012

Как нарисовать прямоугольник над изображением с помощью onTouchEvent?

Но прямоугольник не будет перекрываться при просмотре изображения?

1 Ответ

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

Это то, что вам нужно!Замените ваш ImageView (я предполагаю, что под изображением вы подразумеваете ImageView) для холста и нарисуйте его поверх холста! Здесь - это отличный учебник о том, как его использовать, и если вы не знаете, как использовать холст, я настоятельно рекомендую вам прочитать его целиком!

Чтобы рисовать при касании, создайтеПуть при касании и метод onDraw продолжайте рисовать свой путь!Я не написал следующий код, он был взят из здесь .

@Override
public boolean onTouchEvent(MotionEvent event) {
  synchronized (_thread.getSurfaceHolder()) {
    if(event.getAction() == MotionEvent.ACTION_DOWN){
      path = new Path();
      path.moveTo(event.getX(), event.getY());
      path.lineTo(event.getX(), event.getY());
    }else if(event.getAction() == MotionEvent.ACTION_MOVE){
      path.lineTo(event.getX(), event.getY());
    }else if(event.getAction() == MotionEvent.ACTION_UP){
      path.lineTo(event.getX(), event.getY());
      _graphics.add(path);
    }
    return true;
  }
}
@Override
public void onDraw(Canvas canvas) {
   //Draw your image as bitmap
   canvas.drawBitmap(your_image, 0, 0, null); 
  //Draw your path
  for (Path path : _graphics) {                 
    //canvas.drawPoint(graphic.x, graphic.y, mPaint);
    canvas.drawPath(path, mPaint);
  }
}

Удачи!

...