Нарисуйте круг там, где пользователь касается экрана - PullRequest
1 голос
/ 19 января 2012

Я рисую круг, где пользователь касается изображения. Он хорошо рисует круг, но это не то место, где пользователь касается Это всегда слева от многих. Вот код:

прикосновение:

image.setOnTouchListener(new OnTouchListener() {

    public boolean onTouch(View arg0, MotionEvent arg1) {
        System.out.println("Touch recieved at "+arg1.getX() + " " + arg1.getY());
        touchX =  (arg1.getX());
        touchY =   (arg1.getY());
        System.out.println("Touch recieved at "+touchX + " " + touchY);
        image.setImageBitmap(createImage());

        return true;
    }
});

и нанесение на изображение:

public Bitmap createImage(){
        Bitmap image = bmp.copy(Bitmap.Config.RGB_565, true);
        Canvas canvas = new Canvas(image);
        Paint paint = new Paint();
        paint.setStyle(Paint.Style.STROKE);
        paint.setColor(Color.GREEN);
        canvas.drawCircle(touchX, touchY, radius, paint);
        System.out.println("Drew a circle at "+touchX+" " + touchY+" with a radius of "+radius+".");
        return image;
    }

Есть идеи?

Ответы [ 3 ]

1 голос
/ 19 января 2012

Вы должны добавить сенсорный слушатель к макету, а не к изображению. Добавьте setOnTouchListener в макет. Нет необходимости прикасаться к слушателю изображения.

1 голос
/ 19 января 2012

Попробуйте нарисовать на

touchX=touchX- image.getWidth() / 2;
touchY=touchY- image.getHeight() / 2;

это нарисует центр изображения в месте, к которому вы прикоснулись

0 голосов
/ 09 февраля 2012

Взгляните на Hello circle пример

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