我正在ImageView上绘制线条,类似于以下方式:
Bitmap imageBitmap = ((BitmapDrawable) imageView.getDrawable()).getBitmap();
Bitmap duplicateBitmap = Bitmap.createBitmap(imageBitmap.getWidth(),imageBitmap.getHeight(),Bitmap.Config.RGB_565);
Canvas targetCanvas = new Canvas(duplicateBitmap);
targetCanvas.drawBitmap(imageBitmap,0,0,null);
Paint paint = new Paint();
paint.setColor(Color.RED);
paint.setStrokeWidth(3f);
targetCanvas.drawLine(0f,100f, imageBitmap.getWidth(),100f,paint);
imageView.setImageDrawable(new BitmapDrawable(getResources(),duplicateBitmap));
当不缩放时,看起来还不错。
但当我放大时,线条变得更粗了。(这是预期的行为)
现在,如何在图像视图上绘制线条,以便当用户缩放时,线条的粗细不受影响?
附言:我试过先"缩放"图像,然后再在图像上画线(通过点击按钮或其他方式)。但是这并没有起作用,线条仍然非常粗。
我还发现,当图像分辨率较低时,所绘制的线条会更加粗厚。因此,绘制在图像上可能与图像分辨率有关。
我想着用高分辨率的画布遮罩ImageView,但这会浪费内存。而且,我不知道如何实际实现。
我认为这个问题的答案可以解决我的问题。