gpt4 book ai didi

android - 我们如何将 Canvas 上的绘图与 Android 中的预定义图像进行比较?

转载 作者:行者123 更新时间:2023-11-29 02:05:47 27 4
gpt4 key购买 nike

我正在开发一个 Android 应用程序的项目。我需要让用户在预定义的虚线图像上绘图,并显示结果绘图与虚线图像相比的百分比。例如虚线“A”,用户完全绘制覆盖在虚线“A”上,将显示完成100%。

最佳答案

您可以使用 alpha mask 。我将使用您的示例并进一步解释。

一般的想法是插入一个隐藏的掩码,它基本上是一个具有预定义区域的图像,可以算作正确的轨迹。您使用一种颜色定义该区域,例如红色。

现在您有了一个带有红色 A 的图像。您将该图像覆盖在虚线上,并使其透明(alpha channel )。当用户绘制时,你所要做的就是检查触摸事件是否与隐藏层的红色像素到达相同的位置。如果是,则意味着用户正在跟踪线路。

如果您不想弄乱 alpha channel ,您可以发挥创意并以不同的方式进行。如果我处在你的位置,我只会创建一个普通图像(不需要 alpha channel ),它甚至可以是灰度图像(这甚至可以提高内存效率)并在其上绘制不同的 mask 。

例如我希望用户追踪 2 个字母:A 和 B。我打开任何基本的图像编辑软件。创建一个灰度图像,其大小与应检测触摸事件的区域完全相同。绘制一个颜色值为 100(灰色)的字母 A,然后绘制一个颜色值为 50(深灰色)的字母 B。保存图像。

在应用程序中,您只需加载该图像并将其作为二维数组保存在内存中。然后你可以使用 onTouchevent()回调以获取触摸事件位置。因此,例如,如果用户在位置 (120,240) 触摸屏幕,您所要做的就是检查您之前在位置 [120][240] 加载的图像数组的值。如果该位置的值为 100,则表示用户正在字母 A 上描写,如果值为 50,则表示用户正在字母 B 上描写。其他值表示用户未正确描写。

关于android - 我们如何将 Canvas 上的绘图与 Android 中的预定义图像进行比较?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10140009/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com