为什么 button.getAllStyles().getBgImage() return 为空?
Why does button.getAllStyles().getBgImage() return null?
我的测试用例:
Form hi = new Form("Hi World", BoxLayout.y());
hi.add(new Label("Hello World"));
Button button = new Button(" ");
button.getAllStyles().setBgImage(EncodedImage.createFromImage(Image.createImage(CN.convertToPixels(10), CN.convertToPixels(10), 0xffea5b0c), false));
button.getAllStyles().setBackgroundType(Style.BACKGROUND_IMAGE_SCALED_FIT);
hi.add(button);
hi.addShowListener(l -> {
Image background = button.getAllStyles().getBgImage();
Log.p("background is null? " + (background == null));
});
hi.show();
它记录:
background is null? true
为什么 button.getAllStyles().getBgImage()
return 为空?
这是我的错误还是代号一的错误?
因为 getAllStyles()
的 JavaDoc 说:
Returns a "meta style" that allows setting styles once to all the
different Style objects, the getters for this style will be
meaningless and will return 0 values
原因很明显。设置所有样式很有意义,您只需遍历样式对象并设置新值。
但是应该得到什么return?如果 unselected 和 select 不同怎么办?
改用getUnselectedStyle()
。
我的测试用例:
Form hi = new Form("Hi World", BoxLayout.y());
hi.add(new Label("Hello World"));
Button button = new Button(" ");
button.getAllStyles().setBgImage(EncodedImage.createFromImage(Image.createImage(CN.convertToPixels(10), CN.convertToPixels(10), 0xffea5b0c), false));
button.getAllStyles().setBackgroundType(Style.BACKGROUND_IMAGE_SCALED_FIT);
hi.add(button);
hi.addShowListener(l -> {
Image background = button.getAllStyles().getBgImage();
Log.p("background is null? " + (background == null));
});
hi.show();
它记录:
background is null? true
为什么 button.getAllStyles().getBgImage()
return 为空?
这是我的错误还是代号一的错误?
因为 getAllStyles()
的 JavaDoc 说:
Returns a "meta style" that allows setting styles once to all the different Style objects, the getters for this style will be meaningless and will return 0 values
原因很明显。设置所有样式很有意义,您只需遍历样式对象并设置新值。
但是应该得到什么return?如果 unselected 和 select 不同怎么办?
改用getUnselectedStyle()
。