private void updateBackgroundText() {
        // Setup the semitransparent background text
        backgroundText.setTextOrigin(VPos.BASELINE);
        backgroundText.setTextAlignment(TextAlignment.RIGHT);        

        // Setup the semitransparent background text
        // Width of one segment
        oneSegment.setFont(valueFont);
        dotSegment.setText(".");
        if (Lcd.LcdFont.LCD == getSkinnable().getValueFont()) {
            oneSegment.setText("8");                        
        } else if (Lcd.LcdFont.DIGITAL == getSkinnable().getValueFont()) {
            oneSegment.setText("_");
        } else if (Lcd.LcdFont.DIGITAL_BOLD == getSkinnable().getValueFont()) {
            oneSegment.setText("_");
        } else if (Lcd.LcdFont.ELEKTRA == getSkinnable().getValueFont()) {
            oneSegment.setText("_");
        }
        oneSegmentWidth = oneSegment.getLayoutBounds().getWidth();
        dotSegmentWidth = dotSegment.getLayoutBounds().getWidth();

        if (Lcd.NumberSystem.DECIMAL == getSkinnable().getNumberSystem()) {        
            // Width of decimals        
            widthOfDecimals = 0 == getSkinnable().getDecimals() ? 0 : getSkinnable().getDecimals() * oneSegmentWidth + (Lcd.LcdFont.LCD == getSkinnable().getValueFont() ? oneSegmentWidth : dotSegmentWidth);        
            
            // Available width
            availableWidth = width - (0.0151515152 * width) - (0.0416666667 * height) - 2 - valueOffsetRight - widthOfDecimals;
    
            // Number of segments
            noOfSegments = (int) Math.floor(availableWidth / oneSegmentWidth);
    
            // Add segments to background text
            backgroundTextBuilder.setLength(0);
            for (int i = 0 ; i < getSkinnable().getDecimals() ; i++) {
                backgroundTextBuilder.append(oneSegment.getText());
            }
            
            if (getSkinnable().getDecimals() != 0) {            
                backgroundTextBuilder.insert(0, ".");            
            }
    
            for (int i = 0 ; i < noOfSegments ; i++) {
                backgroundTextBuilder.insert(0, oneSegment.getText());
            }
            backgroundText.setText(backgroundTextBuilder.toString());
        } else {            
            // Available width
            availableWidth = width - (0.0151515152 * width) - (0.0416666667 * height) - 2 - valueOffsetRight;

            // Number of segments
            noOfSegments = (int) Math.floor(availableWidth / oneSegmentWidth);

            // Add segments to background text
            backgroundTextBuilder.setLength(0);            
            for (int i = 0 ; i < noOfSegments ; i++) {
                backgroundTextBuilder.insert(0, oneSegment.getText());
            }
            backgroundText.setText(backgroundTextBuilder.toString());    
        }
    }