/** @see #setText(BitmapFont, CharSequence) */ public GlyphLayout (BitmapFont font, CharSequence str) { setText(font, str); }
GlyphLayout glyphLayout = new GlyphLayout(); String item = "Example"; glyphLayout.setText(font,item); float w = glyphLayout.width;
public void setRenderType (RenderType renderType) { this.renderType = renderType; if (renderType != RenderType.FreeType) { if (bitmapFont != null) { bitmapFont.dispose(); generator.dispose(); } } else { String fontFile = getFontFile(); if (fontFile != null) { generator = new FreeTypeFontGenerator(Gdx.files.absolute(fontFile)); FreeTypeFontParameter param = new FreeTypeFontParameter(); param.size = font.getSize(); param.incremental = true; param.flip = true; param.mono = mono; param.gamma = gamma; bitmapFont = generator.generateFont(param); if (bitmapFont.getData().missingGlyph == null) bitmapFont.getData().missingGlyph = bitmapFont.getData().getGlyph('\ufffd'); cache = bitmapFont.newFontCache(); layout = new GlyphLayout(); } } }
public static String ellipsisFilePath(String filePath, BitmapFont font, float maxWidth) { glyphLayout.setText(font, FILE_PATH_ELLIPSIS); float ellipsisWidth = glyphLayout.width; // Cut the last slash int lastSlashIndex = filePath.lastIndexOf("/"); if (lastSlashIndex == filePath.length()-1) { filePath = filePath.substring(0, lastSlashIndex); } // Try to shorten path by cutting slash divided pieces starting from beginning boolean pathCut = false; while (true) { glyphLayout.setText(font, filePath); if (glyphLayout.width < (maxWidth - ellipsisWidth)) break; int slashIndex = filePath.indexOf("/"); if (slashIndex == -1) break; filePath = filePath.substring(slashIndex+1); pathCut = true; } glyphLayout.reset(); // Add ellipsis if path was cut if (pathCut) { filePath = FILE_PATH_ELLIPSIS + filePath; } return filePath; }
int length = parseColorMarkup(str, start, end, colorPool); if (length >= 0) { runEnd = start - 1; run.x = x; run.y = y; if (newline || runEnd == end) adjustLastGlyph(fontData, run); runs.add(run); truncate(fontData, run, targetWidth, truncate, i, glyphRunPool); x = run.x + run.width; break outer; adjustLastGlyph(fontData, previous); width = Math.max(width, previous.x + previous.width); next = wrap(fontData, run, glyphRunPool, wrapIndex, i); width = Math.max(width, run.x + run.width); if (next == null) { // All wrapped glyphs were whitespace.
float truncateWidth = 0; if (truncateRun.xAdvances.size > 0) { adjustLastGlyph(fontData, truncateRun); for (int i = 1, n = truncateRun.xAdvances.size; i < n; i++) // Skip first for tight bounds. truncateWidth += truncateRun.xAdvances.get(i); adjustLastGlyph(fontData, run); if (truncateRun.xAdvances.size > 0) run.xAdvances.addAll(truncateRun.xAdvances, 1, truncateRun.xAdvances.size - 1); } else {
GlyphLayout layout = new GlyphLayout(); layout.setText(bitmapFont,"text"); float width = layout.width; float height = layout.height;
public void setRenderType (RenderType renderType) { this.renderType = renderType; if (renderType != RenderType.FreeType) { if (bitmapFont != null) { bitmapFont.dispose(); generator.dispose(); } } else { String fontFile = getFontFile(); if (fontFile != null) { generator = new FreeTypeFontGenerator(Gdx.files.absolute(fontFile)); FreeTypeFontParameter param = new FreeTypeFontParameter(); param.size = font.getSize(); param.incremental = true; param.flip = true; param.mono = mono; param.gamma = gamma; bitmapFont = generator.generateFont(param); if (bitmapFont.getData().missingGlyph == null) bitmapFont.getData().missingGlyph = bitmapFont.getData().getGlyph('\ufffd'); cache = bitmapFont.newFontCache(); layout = new GlyphLayout(); } } }
int length = parseColorMarkup(str, start, end, colorPool); if (length >= 0) { runEnd = start - 1; run.x = x; run.y = y; if (newline || runEnd == end) adjustLastGlyph(fontData, run); runs.add(run); truncate(fontData, run, targetWidth, truncate, i, glyphRunPool); x = run.x + run.width; break outer; adjustLastGlyph(fontData, previous); width = Math.max(width, previous.x + previous.width); next = wrap(fontData, run, glyphRunPool, wrapIndex, i); width = Math.max(width, run.x + run.width); if (next == null) { // All wrapped glyphs were whitespace.
float truncateWidth = 0; if (truncateRun.xAdvances.size > 0) { adjustLastGlyph(fontData, truncateRun); for (int i = 1, n = truncateRun.xAdvances.size; i < n; i++) // Skip first for tight bounds. truncateWidth += truncateRun.xAdvances.get(i); adjustLastGlyph(fontData, run); if (truncateRun.xAdvances.size > 0) run.xAdvances.addAll(truncateRun.xAdvances, 1, truncateRun.xAdvances.size - 1); } else {
/** @see #setText(BitmapFont, CharSequence) */ public GlyphLayout (BitmapFont font, CharSequence str, int start, int end, Color color, float targetWidth, int halign, boolean wrap, String truncate) { setText(font, str, start, end, color, targetWidth, halign, wrap, truncate); }
GlyphLayout glyphLayout = new GlyphLayout(); glyphLayout.setText(font, message); float x = screenWidth/2 - glyphLayout.width/2; float y = screenHeight/2 + glyphLayout.height/2;
@Override public void create () { Gdx.input.setInputProcessor(new InputAdapter() { public boolean touchDown (int x, int y, int pointer, int newParam) { renderMode = (renderMode + 1) % 6; return false; } }); spriteBatch = new SpriteBatch(); texture = new Texture(Gdx.files.internal("data/badlogic.jpg")); logoSprite = new Sprite(texture); logoSprite.setColor(1, 1, 1, 0.6f); logoSprite.setBounds(50, 100, 400, 100); font = new BitmapFont(Gdx.files.getFileHandle("data/verdana39.fnt", FileType.Internal), Gdx.files.getFileHandle( "data/verdana39.png", FileType.Internal), false); cache = font.newFontCache(); layout = new GlyphLayout(); }
int length = parseColorMarkup(str, start, end, colorPool); if (length >= 0) { runEnd = start - 1; run.x = x; run.y = y; if (newline || runEnd == end) adjustLastGlyph(fontData, run); runs.add(run); truncate(fontData, run, targetWidth, truncate, i, glyphRunPool); x = run.x + run.width; break outer; adjustLastGlyph(fontData, previous); width = Math.max(width, previous.x + previous.width); next = wrap(fontData, run, glyphRunPool, wrapIndex, i); width = Math.max(width, run.x + run.width); if (next == null) { // All wrapped glyphs were whitespace.
runs.pop(); } else adjustLastGlyph(fontData, first);
/** @see #setText(BitmapFont, CharSequence) */ public GlyphLayout (BitmapFont font, CharSequence str, int start, int end, Color color, float targetWidth, int halign, boolean wrap, String truncate) { setText(font, str, start, end, color, targetWidth, halign, wrap, truncate); }
public void drawString(String text, int x, int y, int w, int h) { beginBatch(); GlyphLayout layout = new GlyphLayout(); layout.setText(font.getFont(), text); float cx = w / 2 - layout.width / 2; float cy = h / 2 - layout.height / 2; drawFont(text, x + cx, y + cy); }
@Override public void create () { spriteBatch = new SpriteBatch(); // font = new BitmapFont(Gdx.files.internal("data/verdana39.fnt"), false); font = new BitmapFont(Gdx.files.internal("data/arial-32-pad.fnt"), false); // font = new FreeTypeFontGenerator(Gdx.files.internal("data/arial.ttf")).generateFont(new FreeTypeFontParameter()); font.getData().markupEnabled = true; font.getData().breakChars = new char[] {'-'}; multiPageFont = new BitmapFont(Gdx.files.internal("data/multipagefont.fnt")); // Add user defined color Colors.put("PERU", Color.valueOf("CD853F")); renderer = new ShapeRenderer(); renderer.setProjectionMatrix(spriteBatch.getProjectionMatrix()); stage = new Stage(new ScreenViewport()); Skin skin = new Skin(Gdx.files.internal("data/uiskin.json")); BitmapFont labelFont = skin.get("default-font", BitmapFont.class); labelFont.getData().markupEnabled = true; // Notice that the last [] has been deliberately added to test the effect of excessive pop operations. // They are silently ignored, as expected. label = new Label("<<[BLUE]M[RED]u[YELLOW]l[GREEN]t[OLIVE]ic[]o[]l[]o[]r[]*[MAROON]Label[][] [Unknown Color]>>", skin); label.setPosition(100, 200); stage.addActor(label); Window window = new Window("[RED]Multicolor[GREEN] Title", skin); window.setPosition(400, 300); window.pack(); stage.addActor(window); layout = new GlyphLayout(); }
runs.pop(); } else adjustLastGlyph(fontData, first);
/** @see #setText(BitmapFont, CharSequence) */ public GlyphLayout (BitmapFont font, CharSequence str, Color color, float targetWidth, int halign, boolean wrap) { setText(font, str, color, targetWidth, halign, wrap); }