/** * Sets the fill color from the cached rgb values. */ private void setStrokeColorFromCache() { canvas.setStrokeColor( Color.argb(strokeAlpha, (int) (255 * cacheStrokeR), (int) (255 * cacheStrokeG), (int) (255 * cacheStrokeB))); }
/** * Sets the fill color from the cached rgb values. */ private void setStrokeColorFromCache() { canvas.setStrokeColor( Color.argb(strokeAlpha, (int) (255 * cacheStrokeR), (int) (255 * cacheStrokeG), (int) (255 * cacheStrokeB))); }
@Override public Surface setFillColor(int color) { canvas.setFillColor(color); canvas.setStrokeColor(color); return this; }
private void drawCircleArc(Canvas canvas, float x, float y, float start, float span) { canvas.setStrokeColor(0xFFDDDDDD).strokeCircle(x, y, 10). setStrokeColor(0xFF000000).drawArc(x, y, 10, start, span); }
void stroke (Canvas canvas, float y) { canvas.setStrokeColor(0xFF99CCFF); canvas.setStrokeWidth(bwid); canvas.strokeRoundRect(2 + bwid / 2, y + bwid / 2, 94 - bwid, 30 - bwid, 10); } public void draw(Canvas canvas) {
void stroke (Canvas canvas, float y) { canvas.setStrokeColor(0xFF99CCFF); canvas.setStrokeWidth(bwid); canvas.strokeRoundRect(2 + bwid / 2, y + bwid / 2, 94 - bwid, 30 - bwid, 10); } public void draw(Canvas canvas) {
public void draw(Canvas canvas) { canvas.setFillColor(0xFF99CCFF); canvas.fillCircle(15, 15, 15); canvas.setStrokeColor(0xFF000000); canvas.strokeRect(0, 0, 30, 30); } });
public void draw(Canvas canvas) { canvas.setFillColor(0xFF99CCFF); canvas.fillCircle(15, 15, 15); canvas.setStrokeColor(0xFF000000); canvas.strokeRect(0, 0, 30, 30); } }));
@Override public void drawTransform(Transform xf) { getWorldToScreenToOut(xf.p, tempVec1); tempVec2.setZero(); // float k_axisScale = 0.4f; canvas.setStrokeColor(Color.rgb(1, 0, 0)); // note: violates strokeAlpha tempVec2.x = xf.p.x; // + k_axisScale * xf.R.m11; // Transform no longer scales tempVec2.y = xf.p.y; // + k_axisScale * xf.R.m12; getWorldToScreenToOut(tempVec2, tempVec2); canvas.drawLine(tempVec1.x, tempVec1.y, tempVec2.x, tempVec2.y); canvas.setStrokeColor(Color.rgb(0, 1, 0)); // note: violates strokeAlpha tempVec2.x = xf.p.x; // + k_axisScale * xf.R.m21; // Transform no longer scales tempVec2.y = xf.p.y; // + k_axisScale * xf.R.m22; getWorldToScreenToOut(tempVec2, tempVec2); canvas.drawLine(tempVec1.x, tempVec1.y, tempVec2.x, tempVec2.y); canvas.setStrokeColor(Color.argb(strokeAlpha, 1, 0, 0)); // restores strokeAlpha }
@Override public void paint(float delta) { super.paint(delta); int curSecs = (int)(elapsedMillis/1000); if (curSecs != lastSecs) { timeImg.canvas().clear(); timeImg.canvas().setStrokeColor(0xFF000000); timeImg.canvas().strokeRect(0, 0, 100, 100); timeImg.canvas().drawText(""+curSecs, 40, 55); lastSecs = curSecs; } // round the width so that it goes to zero sometimes (which should be fine) tileLayer.setWidth(Math.round(Math.abs(FloatMath.sin(elapsedMillis/2)) * 100)); }
public void draw(Canvas canvas) { float dotRadius = 40; canvas.save(); canvas.setFillGradient(graphics().createRadialGradient( 100 / 3, 100 / 2.5f, dotRadius, new int[] { 0xFFFFFFFF, 0xFFCC66FF }, new float[] { 0f, 1f })); canvas.fillCircle(50, 50, dotRadius); canvas.restore(); canvas.setStrokeColor(0xFF000000); canvas.setStrokeWidth(1.5f); canvas.strokeCircle(50, 50, dotRadius); } });
public Texture formatText (TextFormat format, String text, boolean border) { TextLayout layout = game.graphics.layoutText(text, format); float margin = border ? 10 : 0; float width = layout.size.width()+2*margin, height = layout.size.height()+2*margin; Canvas canvas = game.graphics.createCanvas(width, height); if (border) canvas.setFillColor(0xFFCCCCCC).fillRect(0, 0, canvas.width, canvas.height); canvas.setFillColor(0xFF000000).fillText(layout, margin, margin); if (border) canvas.setStrokeColor(0xFF000000).strokeRect(0, 0, width-1, height-1); return canvas.toTexture(); }
@Override public void update(int delta) { canvas.clear(); canvas.setStrokeWidth(3); canvas.setStrokeColor(0x88ff0000); noSegs += direction; if (noSegs > 50) direction = -1; if (noSegs < 20) direction = 1; final float r = 100; for (int ii = 0; ii < noSegs; ii++) { float angle = 2*FloatMath.PI * ii / noSegs; float x = (r * FloatMath.cos(angle)) + graphics().width() / 2; float y = (r * FloatMath.sin(angle)) + graphics().height() /2; canvas.strokeCircle(x, y, 100); } } }
public void draw(Canvas canvas) { canvas.setFillColor(0xFF99CCFF); canvas.fillRect(0, 0, 100, 100); // draw a point and some lines canvas.setStrokeColor(0xFFFF0000); canvas.drawPoint(50, 50); canvas.drawLine(0, 25, 100, 25); canvas.drawLine(0, 75, 100, 75); canvas.drawLine(25, 0, 25, 100); canvas.drawLine(75, 0, 75, 100); // stroke and fill a circle canvas.strokeCircle(25, 75, 10); canvas.setFillColor(0xFF0000FF); canvas.fillCircle(75, 75, 10); } });
public void draw(Canvas canvas) { canvas.setFillColor(0xFF99CCFF); canvas.fillRect(0, 0, 100, 100); // draw a point and some lines canvas.setStrokeColor(0xFFFF0000); canvas.drawPoint(50, 50); canvas.drawLine(0, 25, 100, 25); canvas.drawLine(0, 75, 100, 75); canvas.drawLine(25, 0, 25, 100); canvas.drawLine(75, 0, 75, 100); // stroke and fill a circle canvas.strokeCircle(25, 75, 10); canvas.setFillColor(0xFF0000FF); canvas.fillCircle(75, 75, 10); } });
protected static CanvasImage formatText (TextFormat format, String text, boolean border) { TextLayout layout = graphics().layoutText(text, format); float margin = border ? 10 : 0; float width = layout.width()+2*margin, height = layout.height()+2*margin; CanvasImage image = graphics().createImage(width, height); image.canvas().setStrokeColor(0xFF000000); image.canvas().setFillColor(0xFF000000); image.canvas().fillText(layout, margin, margin); if (border) image.canvas().strokeRect(0, 0, width-1, height-1); return image; }
public static Image makeButtonImage(String label) { TextLayout layout = graphics().layoutText(label, BUTTON_FMT); CanvasImage image = graphics().createImage(layout.width()+10, layout.height()+10); image.canvas().setFillColor(0xFFCCCCCC); image.canvas().fillRect(0, 0, image.width(), image.height()); image.canvas().setFillColor(0xFF000000); image.canvas().fillText(layout, 5, 5); image.canvas().setStrokeColor(0xFF000000); image.canvas().strokeRect(0, 0, image.width()-1, image.height()-1); return image; }
@Override public void init() { String text = "The quick brown fox jumped over the lazy dog."; TextFormat format = new TextFormat(new Font("Helvetica", 18)); TextBlock block = new TextBlock(game.graphics.layoutText(text, format, new TextWrap(100))); float x = 5; for (float scale : new float[] { 1f, 2f, 3f }) { float swidth = block.bounds.width() * scale, sheight = block.bounds.height() * scale; Canvas canvas = game.graphics.createCanvas(swidth, sheight); canvas.setStrokeColor(0xFFFFCCCC).strokeRect(0, 0, swidth-0.5f, sheight-0.5f); canvas.scale(scale, scale); canvas.setFillColor(0xFF000000); block.fill(canvas, TextBlock.Align.RIGHT, 0, 0); game.rootLayer.addAt(new ImageLayer(canvas.toTexture()), x, 5); addInfo(canvas, x + swidth/2, sheight + 10); x += swidth + 5; } }
protected Texture makeTextImage() { TextFormat format = new TextFormat(new Font(font.value(), style.value(), 24)); float wrapWidth = wrap.value() == 0 ? Float.MAX_VALUE : game.graphics.viewSize.width()*wrap.value()/100; TextBlock block = new TextBlock( game.graphics.layoutText(sample, format, new TextWrap(wrapWidth))); float awidth = adjustWidth(block.bounds.width()), aheight = adjustHeight(block.bounds.height()); float pad = 1/game.graphics.scale().factor; Canvas canvas = game.graphics.createCanvas(awidth+2*pad, aheight+2*pad); canvas.translate(pad, pad); canvas.setStrokeColor(0xFFFFCCCC).strokeRect(0, 0, awidth, aheight); render(canvas, block, align.value(), lineBounds.value()); return canvas.toTexture(); }
protected Image makeTextImage() { TextFormat format = new TextFormat(graphics().createFont(font.value(), style.value(), 24), true); float wrapWidth = wrap.value() == 0 ? Float.MAX_VALUE : graphics().width()*wrap.value()/100; TextBlock block = new TextBlock(graphics().layoutText(sample, format, new TextWrap(wrapWidth))); float awidth = adjustWidth(block.bounds.width()), aheight = adjustHeight(block.bounds.height()); float pad = TextBlock.pad(); CanvasImage image = graphics().createImage(awidth+2*pad, aheight+2*pad); image.canvas().translate(pad, pad); image.canvas().setStrokeColor(0xFFFFCCCC).strokeRect(0, 0, awidth, aheight); render(image.canvas(), block, align.value(), lineBounds.value()); return image; }