聚焦时如何用图像填充 LWUIT 按钮?
Posted
技术标签:
【中文标题】聚焦时如何用图像填充 LWUIT 按钮?【英文标题】:How to fill a LWUIT Button with an image when it's focused? 【发布时间】:2011-11-27 14:52:33 【问题描述】:我在 LWUIT 表单中有一个按钮,我有一个应该在这个按钮中绘制的图标,我希望图标填充所有按钮空间,而不在按钮边框和图标之间留下任何空白,如何我可以这样做吗?
例如:假设图标只是一个绿色方块,使用以下代码:
Button button = new Button(Image.createImage("/green.JPG"));
form.addComponent(button);
我得到以下结果当项目获得焦点:
当按钮聚焦时,如何去除按钮“绿色”图标周围的白色边框(我会将整个图标图像替换为另一个图像来表示焦点状态)?
【问题讨论】:
【参考方案1】:1) 内容、绿色图标和组件边界之间的空白,即白色边框,称为padding。要使图像与按钮边界相匹配,请移除所有方向的填充(TOP、BOTTOM、LEFT 和 RIGHT ) 在每个组件状态下,即 Unselected、Selected、Pressed 和 Disabled。
所以对于未选择的状态是
button.getUnselectedStyle().setPadding(0, 0, 0, 0);
对按钮的其他状态执行此操作。
您可能想要调整按钮的边距以使其适合容器内的大小。
2) 要移除按钮的边框,请为每个组件状态调用以下语法方法
button.get[ComponentState]Style().setBorder(null, false);
对于你的专注状态,button.getSelectedStyle().setBorder(null, false);
3) 使用以下方法为按钮的适当状态设置图标,
button.setIcon(image);
button.setRollOverIcon(image);
button.setPressedIcon(image);
【讨论】:
正确。为了完整起见,我要补充一点,所有这些都可以在 GUI 主题编辑中定义,而无需实际编写任何代码。只需在按钮的主题样式(甚至默认样式)中将填充设置为 0 并将边框设置为空。以上是关于聚焦时如何用图像填充 LWUIT 按钮?的主要内容,如果未能解决你的问题,请参考以下文章