protected void render (Canvas canvas, TextBlock block, TextBlock.Align align, boolean showBounds) { String effect = this.effect.value(), strokeFill = draw.value(); if (effect.equals("ShadowUL")) { render(canvas, strokeFill, block, align, 0xFFCCCCCC, 0, 0, showBounds); render(canvas, strokeFill, block, align, 0xFF6699CC, 2, 2, false); } else if (effect.equals("ShadowLR")) { render(canvas, strokeFill, block, align, 0xFFCCCCCC, 2, 2, false); render(canvas, strokeFill, block, align, 0xFF6699CC, 0, 0, showBounds); } else if (effect.equals("Outline")) { canvas.setStrokeWidth(2*outlineWidth); canvas.setLineCap(Canvas.LineCap.ROUND); canvas.setLineJoin(Canvas.LineJoin.ROUND); render(canvas, "Stroke", block, align, 0xFF336699, outlineWidth, outlineWidth, false); render(canvas, "Fill", block, align, 0xFF6699CC, outlineWidth, outlineWidth, showBounds); } else { render(canvas, strokeFill, block, align, 0xFF6699CC, 0, 0, showBounds); } } }
protected void render (Canvas canvas, TextBlock block, TextBlock.Align align, boolean showBounds) { String effect = this.effect.value(), strokeFill = draw.value(); if (effect.equals("ShadowUL")) { render(canvas, strokeFill, block, align, 0xFFCCCCCC, 0, 0, showBounds); render(canvas, strokeFill, block, align, 0xFF6699CC, 2, 2, false); } else if (effect.equals("ShadowLR")) { render(canvas, strokeFill, block, align, 0xFFCCCCCC, 2, 2, false); render(canvas, strokeFill, block, align, 0xFF6699CC, 0, 0, showBounds); } else if (effect.equals("Outline")) { canvas.setStrokeWidth(2*outlineWidth); canvas.setLineCap(Canvas.LineCap.ROUND); canvas.setLineJoin(Canvas.LineJoin.ROUND); render(canvas, "Stroke", block, align, 0xFF336699, outlineWidth, outlineWidth, false); render(canvas, "Fill", block, align, 0xFF6699CC, outlineWidth, outlineWidth, showBounds); } else { render(canvas, strokeFill, block, align, 0xFF6699CC, 0, 0, showBounds); } } }
@Override public void render (Canvas canvas, TextLayout text, int textColor, boolean underlined, float x, float y) { canvas.save(); canvas.setStrokeColor(outlineColor); canvas.setStrokeWidth(outlineWidth*2); canvas.setLineCap(outlineCap); canvas.setLineJoin(outlineJoin); canvas.strokeText(text, x+outlineWidth, y+outlineWidth); canvas.setFillColor(textColor); canvas.fillText(text, x+outlineWidth, y+outlineWidth); if (underlined) { IRectangle bounds = text.bounds; float sx = x + bounds.x() + outlineWidth; float sy = y + bounds.y() + bounds.height() + outlineWidth + 1; canvas.fillRect(sx, sy, bounds.width(), 1); } canvas.restore(); }