聚焦时如何用图像填充 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。要使图像与按钮边界相匹配,请移除所有方向的填充(TOPBOTTOMLEFTRIGHT ) 在每个组件状态下,即 UnselectedSelectedPressedDisabled

所以对于未选择的状态是

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 按钮?的主要内容,如果未能解决你的问题,请参考以下文章

如何用图像填充提交按钮?

LWUIT 中的按钮边框问题

保存时如何用计数命名文件?

JavaME - LWUIT 图像占用了所有内存

如何使用 LWUIT 框架在 VideoComponent 控件上绘制图像?

LWUIT - 如何让 9 部分图像拉伸而不重复(资源编辑器 1.5)