我已经掌握了使用主题来改变我的应用程序的外观和感觉,但仍然有一些谜团。现在,在SocialBoo主题中,显示溢出菜单的按钮太小,即使它在任何其他主题中的大小合适。此外,溢出菜单会在其他主题上弹出一个漂亮的动画,但不会在SocialBoo主题中弹出。谁能告诉我如何修改主题以修复溢出按钮的大小并为溢出菜单指定动画?
答案 0 :(得分:0)
SocialBoo是一个非常古老的演示,仍然使用旧的GUI构建器。我们正在慢慢迁移到新的GUI构建器,该构建器将在3.4版本中发布,但目前仍被视为测试版状态。
新的GUI构建器标准化工具栏,当我们开发旧的GUI构建器时,它不存在。
溢出/侧边菜单的图标可以通过theme constants专门sideMenuImage
和menuImage
进行自定义。
答案 1 :(得分:0)
我能够在这样的代码中部分解决这个问题:
Hashtable<Object, Object> newThemeProps = new Hashtable<>();
// I need to start these with @, which tells the addThemeProps() method
// that these are theme constants, not theme properties.
// (The @ character gets stripped out.)
newThemeProps.put("@menuTransitionIn", "bubble");
newThemeProps.put("@menuTransitionOut", "fade");
UIManager.getInstance().addThemeProps(newThemeProps);
这给了我想要的动画。我仍然不知道如何在资源文件中更改它。
对于按钮,我在资源编辑器中通过打开TitleCommand样式并在&#34; ...&#34;中将背景图像类型设置为[空]来修复此问题。按钮。这并没有改善按钮的大小,但它删除了太小的按钮图像,因此它看起来更专业。这是修复之前的样子:
这是在修复之后:
(是的,我也在菜单中添加了另一个项目。)
回想一下,我可能刚刚检查了背景图像选项卡中的导出按钮。
我还将TitleCommand前景颜色更改为白色(未显示),因为黑色按钮实际上是不可见的。
最后,我用这段代码将FontImage图标更改为白色:
/**
* The icon created by this method gets passed to the Command constructor.
*
* @param icon The FontImage constant for the desired icon
* @return The icon as an Image.
*/
@Nullable
public static Image createClearMaterialIcon(char icon) {
materialIconStyle = UIManager.getInstance().getComponentStyle("TitleCommand");
// materialIconStyle.setBgTransparency(0, true);
if (icon == 0) {
return null;
} else {
return FontImage.createMaterial(icon, materialIconStyle);
}
}
样式的透明度需要设置为零(透明)。这可以使用已注释掉的行中的setBgTransparency()调用来完成,也可以通过在“颜色”选项卡中将TitleCommand资源的透明度设置为0来完成。
谢谢Shai指出我正确的方向。