java - 从像素坐标在图片上绘制矩形

标签 java android paint android-canvas

使用下面的代码我可以在我的位图图像上绘制一个矩形。

Paint paint = new Paint();
paint.setStyle(Style.STROKE);
paint.setColor(Color.BLUE);
publishProgress(80);
Canvas canvas = new Canvas(mBitmap);
publishProgress(85);
canvas.drawRect(200, 100, 200, 100, paint);
bitmap.recycle();
channel.close();

我读到 canvas.drawRect(200, 100, 200, 100, paint); 中给出的值分别表示左 x、上 y、右 x 和下 y。所以我的问题是:

  • 这些值是以像素为单位的吗? ppi 还是什么??
  • 如果我只有每个角的像素坐标,如下图所示,我如何在我的图像上绘制一个矩形?假设我有 A (x, y) B (x, y)、C(x, y) 和 D(x, y),其中 x 和 y 以下图轴的像素表示。 注意:我无法控制 A、B、C、D,它们是通过 Web 服务提供给我的

    rectangle i want to draw

最佳答案

我不认为你在这里有问题,你会这样做:

canvas.drawRect(a.getX(), a.getY(), c.getX(), c.getY(), paint);

是的,这些值以像素为单位,但是您的原点 (0,0) 通常位于 Canvas 的左上角。当您在 Canvas 上向下移动时,Y 值变得更正。

关于java - 从像素坐标在图片上绘制矩形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9230693/

相关文章:

c# - 像 Web.Application 中的功能一样绘制?

java - 如何将油漆(图形g)添加到另一个类中?

java即时 double 型转int型

java - byte[] 到图像转换 java 中的 IllegalArgumentException

android - 如何使用 Android Studio 和 gradle 构建一个 android 库?

java - 从 Asynctask 返回值

c# - 如何在 MonoDroid 中制作动画监听器?

Android:通过使用主题,我只能为每个属性拍摄一次吗? Android 中没有类似 CSS 的东西吗?

java - 在 glassfish Web 服务中加载属性或 XML

java - 使用gradle构建spring3框架失败