когда я использую низкокачественное изображение, положение краски идет вместе с пальцем, но на высококачественных изображениях положение краски идет слишком вперед, как на изображении: 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;
}
есть ли способ это исправить?