Перерисовать изображение на холсте на сенсорном событии? - PullRequest
0 голосов
/ 21 января 2011

Я пытаюсь перерисовать изображение на холсте для события onTouch.Я могу нарисовать изображение на холсте, но хочу, чтобы изображение было перерисовано в определенном x,y.

protected void onDraw(Canvas canvas)

{

     mBitmap1   = BitmapFactory.decodeResource(getResources(), R.drawable.ab);
 mBitmap2   = BitmapFactory.decodeResource(getResources(), R.drawable.ab);
 this.canvas=canvas;

     Paint p = new Paint();
    p.setColor(Color.parseColor("#FFFFFF"));

    canvas.drawLine(x1, y1, x2 , y2, p);
    canvas.drawBitmap(mBitmap1, 70, 60, null);
    canvas.drawBitmap(mBitmap1, 185, 60, null);
}


    @Override
    public boolean onTouch(View v, MotionEvent event) {
        final int x=(int)event.getX();
        Log.i("***********xPos","="+x);
        final int y=(int)event.getY();
        Log.i("***********yPos","="+y);

        if(event.getAction()==MotionEvent.ACTION_UP)
        {

        }
        if(event.getAction()==MotionEvent.ACTION_DOWN)
        {
            canvas.drawBitmap(mBitmap1,50+x,60,null );
            this.postInvalidate();

        }
        if(event.getAction()==MotionEvent.ACTION_MOVE)
        {

        }
        return false;
    }

Ответы [ 2 ]

3 голосов
/ 22 января 2011

хорошо, я думаю, я получил то, что вам нужно. Вы вызываете метод postinvalidate () каждый раз, когда вызывается action.down, поэтому он в конечном итоге вызывает ondraw (). Так же он будет перерисовывать его на растровом изображении для заданного значения paricaular снова вставьте ondraw


так что вы видите, что он остается неизменным.


хорошо, выполните следующие действия:


1: использовать некоторые открытые переменные для рисования растровых изображений в методе ondraw для осей x и y, скажем, initx и inity


2: чем при событии касания: обновите это значение, добавив значения x и y в initx и inity, соответственно


как: initx = initx + х; Inity = Inity + у; и, наконец, в последнем случае, просто вызовите метод post.invalidate или ondraw. это будет работать для вас

0 голосов
/ 21 января 2011

См. Класс MotionEvent, который предоставляет координаты того, где пользователь коснулся экрана.

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