相关疑难解决方法(0)

如何使用不受缩放或缩放影响的画布在 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,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));
Run Code Online (Sandbox Code Playgroud)

不放大时看起来没问题。

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

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

PS:我先尝试“放大”图像,然后在图像上画线。(点击按钮或其他东西)。但这没有用,线还是很粗。

我还发现,当图像分辨率较低时,绘制的线条较粗。所以我假设在图像上绘图也与图像分辨率有关。

我正在考虑用高分辨率画布屏蔽 ImageView,但这会导致内存效率低下。另外,我对如何实际实现这一点一无所知。

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

android canvas image paint pinchzoom

7
推荐指数
1
解决办法
421
查看次数

标签 统计

android ×1

canvas ×1

image ×1

paint ×1

pinchzoom ×1