【问题标题】:Draw segments of a bitmap using Canvas使用 Canvas 绘制位图片段
【发布时间】:2011-04-05 03:43:51
【问题描述】:

我有一张图片(资源)想用于我在 Android 中的应用程序。但我只想画出它的特定部分。我最初的想法是把它变成一个位图,并指定需要绘制哪些像素以及在哪里绘制。我试过 canvas.drawBitmap(bitmap, src, dst, null);但它似乎不起作用。可能是我用的不对。

只是想知道这是否可能,我可以用什么来实现这一点?

谢谢!

src = new Rect(20,40,20,40);
dst = new Rect(20,40,20,40);

canvas.drawBitmap(background, offset, 0, null);
canvas.drawBitmap(bitmap, src, dst, null);

我希望看到 src 坐标指定的区域被绘制到 dst 坐标指定的区域,但除了背景之外我什么也没看到。

【问题讨论】:

  • 你走在正确的道路上,你能发布你的代码吗?

标签: java android canvas


【解决方案1】:

dst 应该是您要在画布中绘制图像的位置,src 应该是您要从中裁剪的 Rect。

【讨论】:

  • 谢谢!我明白了 :) 我的坐标需要一些调整。
【解决方案2】:

您可能想要使用支持 Alpha 通道的格式或加载位图以及 Alpha 通道的灰度图像,从两者构建图像并绘制它。试试 Java 的 Graphics2D 对象。 Here 是一篇可以帮助您入门的文章。

【讨论】:

  • @Marcos:我认为 Android 是基于 Java 构建的。
  • 这是,但 API 完全不同。上面没有 Swing ow AWT。只是 Android 组件。
  • 我还认为 Android 是基于 Java 构建的。虽然我不知道Android是否支持Graphics2D,但我的回答是为了提供一个方向。根据 OP 的问题,我假设他想使用 alpha 贴图而不仅仅是矩形,因此 Graphics2D 提示旨在提供方向。如果 Android 提供类似的功能,您也可以使用它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-11
  • 2021-04-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多