0

我需要将此代码http://www.pahgawks.com/blog/fire-particles-for-html5-canvas/从 css 和 javascript 移植到 Android。在此代码中,如果更改此行

stage.fillStyle = "rgba("+(260-(particles[i].life*2))+","+((particles[i].life*2)+50)+","+(particles[i].life*2)+","+(((max-particles[i].life)/max)*0.4)+")";

至:

stage.fillStyle = "rgba("+255+","+50+","+0+","+0.4+")";

看到黄色、红色和白色的火,但在 Android 中我只看到红色

paint.setColor(Color.argb(102,255,50,0);

但是我在css代码中的paint.setColor(Color.argb(alpha,red,green,blue))和rgba css有问题,我们看到在火中产生的颜色为黄色和白色。

4

2 回答 2

0

在您的 Java 代码中,Color.argb(102, 255, 50, 0)当它在 JavaScript 中动态设置时(基于particles[i].lifemax值),您有一个静态颜色 ( )。

尝试在您的 Java 代码中使用这些值,以查看所有颜色。

于 2014-04-30T09:09:55.217 回答
0

不知道为什么Android选择使用#ARGB颜色布局而不是规范的#RGBA颜色布局。这是即将到来的 Android P中十六进制值处理的消息。

Android P 应用启用草案 CSS 颜色模块级别 4 行为以处理 4 和 8 十六进制数字 CSS 颜色。

Chrome 从 52 版开始支持 CSS 颜色模块级别 4,但 WebView 目前禁用了该功能,因为发现现有的 Android 应用程序在 Android 排序 (ARGB) 中包含 32 位十六进制颜色,这会导致渲染错误。

例如,颜色#80ff8080 当前在 WebView 中呈现为 不透明的浅红色 (#ff8080),用于面向 Android P SDK 之前的应用程序。当前忽略了前导组件(Android 将其解释为 alpha 组件)。如果应用程序以 P 或更高版本为目标,这将被解释为 50% 透明浅绿色 (#80ff80)。

于 2018-08-03T09:29:27.230 回答