图形背景时Codenameone中的TextField背景透明度

时间:2018-08-14 21:27:01

标签: java codenameone

我的问题是我有一个带有2色背景的表格;在顶部,我有一个bg透明文本字段。当它在模拟器中渲染时,由于TextField位于背景中颜色相遇的点上(按字段2),因此看起来不错。

但是当我单击字段3时,当我希望它保持透明时,“文本字段”将使用仅一种背景颜色的纯色背景列。  (

背景由一个深蓝色的LayeredLayout组成,然后我在下半部分有一个浅蓝色图形:

class RectangleComponent extends Component {

private int bottomColour;

protected void setBottomColour(int colour) {
    bottomColour = colour;
}

@Override
protected Dimension calcPreferredSize() {
    return new Dimension(250, 250);
}

@Override
public void paint(Graphics g) {
    g.setColor(bottomColour);
    int[] int_x = new int[] { 0, getWidth(), getWidth(), 0 };
    int[] int_y = new int[] { (int) (getHeight() / 2.5), ((int) (getHeight() / 2.5)) + 150, getHeight(),
            getHeight() };

    g.fillPolygon(int_x, int_y, 4);
}

我的TextField是:

public class TextCustom extends TextField {

public TextCustom(String hint, String controlName, int maxChars) {
    Border border = Border.createCompoundBorder(null, Border.createLineBorder(1, 0xffffff), null, null);
    setName(controlName);
    setUIID("v2_Label11LightPadMarg");
    getAllStyles().setBorder(border);
    setHint(hint);
    getHintLabel().setUIID("v2_Label11LightPadMarg");
    getHintLabel().getAllStyles().setFgColor(0xffffff);
    getHintLabel().getAllStyles().setBgTransparency(0);
    getHintLabel().setAlignment(Component.TOP);
    getAllStyles().setBgTransparency(0);
    getAllStyles().setFgColor(0xffffff);
    getSelectedStyle().setBgTransparency(0);

    setCursorPosition(0);
    setMaxSize(maxChars);
    setColumns(maxChars);
    getAllStyles().setMarginLeft(20);
    getAllStyles().setMarginRight(20);
}

}

谢谢

1 个答案:

答案 0 :(得分:1)

看起来这是模拟器上的问题。在android设备上,看起来还不错。关闭。