如何使用画布在ImageView上绘制不受缩放或缩放影响的线条?

问题描述

我通过执行以下操作在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,null);
    Paint paint = new Paint();
    paint.setColor(Color.RED);
    paint.setStrokeWidth(3f);
    targetCanvas.drawLine(0f,100f,imageBitmap.getWidth(),paint);
    imageView.setImageDrawable(new BitmapDrawable(getResources(),duplicateBitmap));

未放大时看起来还可以。

但是当我放大时,线条变粗了。 (这是预期的行为)

现在,如何在图像视图上绘制线条,以使用户放大时线条的粗细不受影响?

P.S:我先尝试“放大”图像,然后在图像上绘制线条。 (点击按钮或其他方式)。但这没有用,线仍然很粗。

我还发现,当图像分辨率较低时,绘制的线条会更粗。因此,我认为在图像上绘图也与图像分辨率有关。

我当时想用高分辨率画布遮盖ImageView,但这会降低内存效率。另外,我对如何真正实现这一点一无所知。

我以某种方式相信this question的答案可以解决我的问题。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)