Codenameone CN1:具有alpha通道的梯度

Codenameone CN1:具有alpha通道的梯度,codenameone,Codenameone,我想有一个梯度,从黑色到透明(不是白色)。我怎样才能做到这一点 根据我在下面的尝试,我假设没有考虑渐变样式颜色的alpha值: gui_Footer.allStyles.apply { backgroundType = Style.BACKGROUND_GRADIENT_LINEAR_VERTICAL border = RoundRectBorder.create().topOnlyMode(true).cornerRadius(1f) b

我想有一个梯度,从黑色到透明(不是白色)。我怎样才能做到这一点

根据我在下面的尝试,我假设没有考虑渐变样式颜色的alpha值:

    gui_Footer.allStyles.apply {
        backgroundType = Style.BACKGROUND_GRADIENT_LINEAR_VERTICAL
        border = RoundRectBorder.create().topOnlyMode(true).cornerRadius(1f)
        backgroundGradientEndColor = ColorUtil.BLACK
        backgroundGradientStartColor = ColorUtil.argb(0, 255, 255, 255)
    }

Codename One中的渐变忽略alpha字节。虽然我们可以在技术上增加对alpha渐变的支持,但目前还没有计划。您可能可以通过操纵RGB数据来生成这样的图像,但只生成渐变的RGB图像并按比例绘制会更有效

请注意,这通常是最有效的方法,因为GPU的工作方式是非常高效地绘制纹理。如果图像是2的幂次方(例如256x128像素),则它可以完全适合纹理,并且绘制速度非常快。比我们的内置渐变快得多