1

目前我正在开发一个使用手机解码条形码的应用程序。

我对如何在相机屏幕上画一条线或一个正方形以轻松捕获条形码有疑问。

最简单的方法是什么?

4

2 回答 2

1

不幸的是,这并不像听起来那么容易。如果您有来自手机相机的预览图像,那么它通常会呈现为叠加层。这意味着相机预览图像实际上并不构成应用程序画布的任何部分,并且您不能直接与像素交互。手机只是在您的应用程序之上绘制预览,完全不受您的控制。

如果您在屏幕上绘制一条线,那么它将在预览图像下方绘制。

解决这个问题的方法不太漂亮。您需要从相机实际捕获图像。不幸的是,这意味着将 JPEG 或 PNG 文件捕获到字节缓冲区中。然后,您使用 Image.createImage 加载此图像并将其渲染到屏幕上。然后,您可以安全地在此基础上绘图。

这也带来了令人震惊的帧速率。您可能想列举所有可以捕获的可能文件格式,并全部尝试以查看哪一种最快。

于 2009-05-04T08:19:56.390 回答
1

您可以通过使用OverlayControl来做到这一点,假设您的目标设备支持它。我想我记得在@索尼爱立信开发者论坛上看到了一个很好的例子。

编辑:发现这个(不涉及使用 OverlayControl)

于 2009-05-05T06:05:21.870 回答