在我的应用中,我无法弄清楚如何使用我的徽标图片正确设置工具栏的样式。
我想让它看起来像是" Sport1"的工具栏。应用。 Example
所以我需要工具栏左侧的后退命令,我的徽标位于资源的MultiImage中间,右侧是另一个命令。
另外,我想通过滚动让工具栏变小。 到目前为止我尝试了什么:
res_theme = r;
Form f = new Form(" ", new BoxLayout(BoxLayout.Y_AXIS));
logo = res_theme.getImage("Logo_Gema_vertikal.png");
f.getToolbar().getTitleComponent().setUIID("toolbar_image");
Style stitle = f.getToolbar().getStyle();
stitle.setBgTransparency(0);
stitle.setBgImage(logo);
stitle.setBackgroundType(Style.BACKGROUND_IMAGE_ALIGNED_CENTER);
stitle.setPaddingUnit(Style.UNIT_TYPE_DIPS, Style.UNIT_TYPE_DIPS, Style.UNIT_TYPE_DIPS, Style.UNIT_TYPE_DIPS);
stitle.setPaddingTop(5);
所以,这看起来很好。我实际上不需要标题,这就是为什么我
Form f = (" ", ...);
如果我没有在表单中添加标题,则工具栏会变得非常小并从工具栏中挤出背景图像。工具栏中的中心徽标只是出于造型原因,它不需要命令。有没有办法省略标题?我现在把它设置为完全透明,但对我来说这只是一种解决方法。
另外,我猜想不是将徽标设置为居中对齐的背景,我认为最好将其添加到标题部分作为图像,但我不知道这是更好还是如何做到这一点。
现在,我还希望在向下滚动时缩小工具栏。我在Codename One工具栏文档中找到了一些示例代码,但它不适用于我,因为背景图像被删除了。
这是滚动动画的代码:
ComponentAnimation title = f.getToolbar().getTitleComponent().createStyleAnimation("Title", 200);
f.getAnimationManager().onTitleScrollAnimation(title);
在这个例子中,它有效。我的工具栏没有,我不知道为什么。我也无法看到滚动工具栏"之后的大小。已经确定了。
我可以添加一张图片吗?在滚动我的徽标之前,有点像一个工具栏,然后在滚动时它变成一个只有textlogo图像的较小的工具栏?
以下是我尝试使其完成的全部代码:
Form f = new Form(" ", new BoxLayout(BoxLayout.Y_AXIS));
logo = res_theme.getImage("Logo_Gema_vertikal.png");
f.getToolbar().getTitleComponent().setUIID("toolbar_image");
Style stitle = f.getToolbar().getStyle();
stitle.setBgTransparency(0);
stitle.setBgImage(logo);
stitle.setBackgroundType(Style.BACKGROUND_IMAGE_ALIGNED_CENTER);
stitle.setPaddingUnit(Style.UNIT_TYPE_DIPS, Style.UNIT_TYPE_DIPS, Style.UNIT_TYPE_DIPS, Style.UNIT_TYPE_DIPS);
stitle.setPaddingTop(5);
f.add(new SpanLabel("asdasdasdasd");
ComponentAnimation title = f.getToolbar().getTitleComponent().createStyleAnimation("Title", 200);
f.getAnimationManager().onTitleScrollAnimation(title);
f.show();
答案 0 :(得分:2)
从上面的例子看,如果您只是想将图像用作标题而不是使用背景图像设置工具栏样式。
只需使用((Label)toolbar.getTitleComponent()).setIcon(myImage);
。