我通过执行以下操作在 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,但这会导致内存效率低下。另外,我对如何实际实现这一点一无所知。
我以某种方式相信这个问题的答案可以解决我的问题。