2013-03-03 5 views
0

в моем приложении на сенсорном событии я хочу, чтобы drawrectangle-я попробовал this.butnot получить точно, как рисовать.пожалуйста, помогите мне. Я хочу нарисовать прямоугольник в точках, где коснулся. Как я могу использовать getX() и getY() в методе drawRect()? ниже code-ontouch in android-draw rectangle

public boolean onTouch(View v, MotionEvent event) { 
      if(event.getAction()==MotionEvent.ACTION_DOWN) { 
           int X=event.getX(); int Y=event.getY(); 
        Paint paint = new Paint(); 
        paint.setAntiAlias(true); 
        paint.setColor(getResources().getColor(R.color.Yellow)) ; 
        paint.setAlpha(opacity); 
           Canvas canvas1 = new Canvas(mutableimage1); 
          canvas1.drawRect(2.5f,2.5f,2.5f,2.5f, paint); 
           } 
       } 

ответ

0

Не экземпляр нового объекта в методе onTouch: canvas1 = new Canvas(...) Это приведет к замораживанию и запаздывает. Создайте этот холст один раз для хорошего при создании вашего представления.

Будьте осторожны, я думаю, что ваш drawRect() вызов не будет рисовать то, что вам нужно: вы рисуете прямоугольник с х = 2,5 у = 2,5 ширина = 2,5 высота = 2,5

Я полагаю, что вам нужно расположить прямоугольник в соответствии с позиции касания:

//set the x and y pos according to the touch point 
// by removing half the size of the rect we center it on this point ;) 
canvas1.drawRect(X-1.25f, Y-1.25f, 2.5F, 2.5f, paint); 

в противном случае это совершенно правильно, но быть в курсе, что вы рисуете на изменяемом растровое изображение («mutableimage1»), которые не нужно будет отображаться.

Возможно, вы захотите добавить отображение в методе onDraw(Canvas viewCanvas) вашего вида. с помощью:

viewCanvas.drawBitmap(mutableimage1, 0,0, aPreviouslyCreatedPaint);

+0

actully я пытаюсь нарисовать прямоугольник на image.and, когда я trird для круга его working.but прямоугольник не отображается –

+0

Ok вы, вероятно, нужно сравнить код для прямоугольника и круг? какая разница, которая может привести к тому, что прямоугольник не будет нарисован. Помог ли вам до сих пор? – Guian