将 .setBadge 添加到钛中的 ImageView

Add .setBadge to a ImageView in titanium

我需要像添加的图片一样添加徽章。徽章需要在 imageView 之上。我如何在 Titanium 中实现它。我没有使用 alloy 文件夹

@Manuel_Rodrigues。没有什么好的方法可以达到你想要的效果,但有一种折衷的方法可以达到类似的效果。这样你就可以认为徽章也是一个图像,所以只需将徽章放在背景图像上就可以达到效果。在 Titanium 中,它调用了 MaskedImage,它结合了太多图像或只是使用各种混合模式渲染图像。好吧,我没有尝试过,但也许它可以帮助你。检查此 link,您将获得更多详细信息!

另一个更简单的解决方案...将图像放在视图中(我们将调用此父视图 pView)。确保 pView.layout = 'absolute';

pView 中添加徽章作为标签(我们称之为 bLabel)。

bLabel.width = Ti.UI.SIZE; // so it can enlarge depending on label's text
bLabel.height = 16; // depends on font size
bLabel.borderRadius = 16 / 2; // half the height
bLabel.backgroundColor = 'red';
bLabel.color = 'white';

bLabel.x & y 您要将此徽章放置在 pView 中的图像上方的位置。如果您希望徽章位于图像外的右上角,请使 pView 比图像大。

如果您不确定图像(比如远程图像)的高度/宽度,您可能需要对 pView 的高度进行硬编码,您必须在 complete 远程下载图像的事件(直到触发完成,我们才知道图像的大小)。