React Native 有没有办法让触摸穿过图像的透明部分?

问题描述 投票:0回答:2

我有几个重叠的图像,每个图像中的某些区域都是透明的,因此可以看到下面的图像。我希望用户能够通过触摸来选择图像。如果一个图像位于另一图像之上,则他们需要能够通过触摸顶部图像的透明区域来选择下面的图像,因为他们可以通过该区域看到它。

我看到 iOS 中有一些原生解决方案,可以根据像素的 alpha 属性允许触摸失败。 React Native 中是否有任何类似的方法可以允许触摸检测第一个非透明像素并识别该像素来自的图像?

react-native touch transparency alpha-transparency
2个回答
1
投票

供将来参考,我设法以这种方式解决它: 利用此库返回图像的像素颜色和 X、Y 坐标https://github.com/alicansa/react-native-get-pixel

根据触摸的X,Y坐标计算出每个重叠图像对应的X,Y坐标。

使用图像遮罩,其中图像的不透明部分具有纯色,并按从上到下的顺序对每个图像遮罩运行像素颜色检查,以查看哪个返回非 [0,0,0] 值。 (这是因为透明区域在上面的库中返回[0,0,0],它似乎没有进行alpha检查。)

图像蒙版必须位于 Android 文件夹结构的可绘制文件夹中,如库中所述。由于我使用的是图像不透明的纯色,这意味着我可以使用较小分辨率的图像标记来进行这些检查,从而加快了所需时间,因为这是异步检查。


0
投票

我也面临着同样的问题。您有此解决方案的一些示例代码吗?谢谢你。

© www.soinside.com 2019 - 2024. All rights reserved.