如何在Titanium中更改图像的颜色?

时间:2014-12-02 13:43:14

标签: javascript titanium

我正在尝试学习Titanium移动开发。

我在透明背景上有一个黑色星星的图像,我想写一个应用程序,在触摸时随机化它的颜色。

我看到有一些"混合模式"功能,但它们只是iOS。有没有办法在iOS和Android上运行?

非常感谢

4 个答案:

答案 0 :(得分:2)

不,你根本无法改变Titanium中图像的颜色。如果你想实现你的目标,我会简化形状,例如拿一个圆圈。要绘制圆圈,请使用以下代码:

var circle = Ti.UI.createImageView({
        width: 100,
        height: 100,
        borderRadius: 50,
        backgroundColor: 'black'
});

要更改它的颜色,请使用此事件侦听器:

circle.addEventListener("click", function(e){
    circle.backgroundColor = "red";
});

这只会在第一次点击时将颜色更改为红色。如果你想随机化颜色,你必须创建一个颜色数组。然后使用shuffle函数获取随机颜色以最终设置它。本文可能有帮助:shuffle

祝你好运!

答案 1 :(得分:0)

这两个链接可能对你有帮助。

Get Pixel Info

image to pixel

答案 2 :(得分:0)

我看到了解决此类问题的一些选项(您必须对它们进行测试):

  1. Titanium的一大优点是它允许您编写自己的自定义本机模块,您可以将其作为项目的一部分。您甚至可以编写自己的UI组件 - 基本上您可以使用本机做任何事情 - 理论上您可以使用Titanium。

  2. 假设您不想使用本机代码,并希望坚持使用Titanium提供的覆盖效果,例如以下示例:https://developer.appcelerator.com/question/143156/placing-a-transparent-imageview-on-top-of-another-imageview

  3. 另一种方法可能是使用背景颜色(您将随机化)的视图,并在其上面是一个图像,其中围绕恒星的所有内容都具有纯色,并且星形是透明的。

答案 3 :(得分:0)

最后,我在webview中使用了一个HTML canvas元素来解决我的问题。

我编写了一个节点包,用于将图像分割成区域并将它们渲染到画布中。

https://www.npmjs.com/package/regioned-image