java - 图形背景时 Codenameone 中的 TextField 背景透明度
问题描述
我的问题是我有一个带有 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);
}
我的文本字段是:
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);
}
}
谢谢
解决方案
看起来这是模拟器上的问题。在安卓设备上看起来不错。关闭。
推荐阅读
- react-native - 无法将 react-native-linear-gradient 别名为 react-native-web-linear-gradient 以响应本机 Web 应用程序
- javascript - JQGrid - 事件网格仅“第一次”完成/应用默认过滤器首次加载
- python - 在python中将图像拆分为不同的子图像
- unity3d - 从画布坐标转换为世界坐标
- apache-kafka - Kafka消费者返回不相等的行数
- reactjs - 两种 Antd 形式,一个组件
- python - 从 T 和 Z 转换为日期时间时,时间戳秒会发生变化
- python - 通过组合两个列表获得平面列表
- python - 无法解压不可迭代的 numpy.float64 对象:Tensorflow 2.0 中的 Keras 数据集
- javascript - 将对象转换为原始属性(工作示例)