Android - при рисовании на холсте позиция рисования идет слишком вперед - PullRequest
0 голосов
/ 18 декабря 2018

когда я использую низкокачественное изображение, положение краски идет вместе с пальцем, но на высококачественных изображениях положение краски идет слишком вперед, как на изображении: https://i.imgur.com/Y0RSuEk.png

вот моекод:

String imgPath = (String) bundle.get("imagePath");

        File imgFile = new  File(imgPath);
        filePath = Uri.fromFile(new File(imgPath));

        if(imgFile.exists()){

            Bitmap myBitmap = BitmapFactory.decodeFile(imgFile.getAbsolutePath());
            mainImageView.setImageBitmap(myBitmap);

            alteredBitmap = Bitmap.createBitmap( myBitmap.getWidth(), myBitmap.getHeight(), myBitmap.getConfig());
            canvas = new Canvas(alteredBitmap);
            paint = new Paint();
            paint.setColor(Color.RED);
            paint.setStrokeWidth(5);
            paint.setAntiAlias(true);
            matrix = new Matrix();
            canvas.drawBitmap(alteredBitmap, matrix, paint);

            drawImgView.setImageBitmap(alteredBitmap);
            drawImgView.setOnTouchListener(this);

        }



//on touch
public boolean onTouch(View v, MotionEvent event) {
        int action = event.getAction();
        switch (action) {
            case MotionEvent.ACTION_DOWN:
                downx = event.getX();
                downy = event.getY();
                break;
            case MotionEvent.ACTION_MOVE:
                upx = event.getX();
                upy = event.getY();
                canvas.drawLine(downx, downy, upx, upy, paint);
                drawImgView.invalidate();
                downx = upx;
                downy = upy;
                break;
            case MotionEvent.ACTION_UP:
                upx = event.getX();
                upy = event.getY();
                canvas.drawLine(downx, downy, upx, upy, paint);
                drawImgView.invalidate();
                break;
            case MotionEvent.ACTION_CANCEL:
                break;
            default:
                break;
        }
        return true;
    }

есть ли способ это исправить?

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