Last active
July 8, 2020 09:57
-
-
Save codenameone/fbdde74e699174a16b31 to your computer and use it in GitHub Desktop.
Slider can be customized to show a 5 star picking UI in Codename One
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public void showForm() { | |
Form hi = new Form("Star Slider", new BoxLayout(BoxLayout.Y_AXIS)); | |
hi.add(FlowLayout.encloseCenter(createStarRankSlider())); | |
hi.show(); | |
} | |
private void initStarRankStyle(Style s, Image star) { | |
s.setBackgroundType(Style.BACKGROUND_IMAGE_TILE_BOTH); | |
s.setBorder(Border.createEmpty()); | |
s.setBgImage(star); | |
s.setBgTransparency(0); | |
} | |
private Slider createStarRankSlider() { | |
Slider starRank = new Slider(); | |
starRank.setEditable(true); | |
starRank.setMinValue(0); | |
starRank.setMaxValue(10); | |
Font fnt = Font.createTrueTypeFont("native:mainLight", "native:mainLight"). | |
derive(Display.getInstance().convertToPixels(5, true), Font.STYLE_PLAIN); | |
Style s = new Style(0xffff33, 0, fnt, (byte)0); | |
Image fullStar = FontImage.createMaterial(FontImage.MATERIAL_STAR, s).toImage(); | |
s.setOpacity(100); | |
s.setFgColor(0); | |
Image emptyStar = FontImage.createMaterial(FontImage.MATERIAL_STAR, s).toImage(); | |
initStarRankStyle(starRank.getSliderEmptySelectedStyle(), emptyStar); | |
initStarRankStyle(starRank.getSliderEmptyUnselectedStyle(), emptyStar); | |
initStarRankStyle(starRank.getSliderFullSelectedStyle(), fullStar); | |
initStarRankStyle(starRank.getSliderFullUnselectedStyle(), fullStar); | |
starRank.setPreferredSize(new Dimension(fullStar.getWidth() * 5, fullStar.getHeight())); | |
return starRank; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Sample usage of Slider that allows it show a 5 star rating UI.
Notice that this code should be enclosed in a flow layout to keep its preferred size.
From the Codename One project