diff options
-rw-r--r-- | tools/layoutlib/bridge/src/android/graphics/Canvas.java | 60 |
1 files changed, 32 insertions, 28 deletions
diff --git a/tools/layoutlib/bridge/src/android/graphics/Canvas.java b/tools/layoutlib/bridge/src/android/graphics/Canvas.java index 9f4dfd0..c49e11e 100644 --- a/tools/layoutlib/bridge/src/android/graphics/Canvas.java +++ b/tools/layoutlib/bridge/src/android/graphics/Canvas.java @@ -784,23 +784,25 @@ public class Canvas extends _Original_Canvas { private final void doDrawRect(int left, int top, int width, int height, Paint paint) { // get current graphisc - Graphics2D g = getGraphics2d(); + if (width != 0 && height != 0) { + Graphics2D g = getGraphics2d(); - g = getNewGraphics(paint, g); + g = getNewGraphics(paint, g); - Style style = paint.getStyle(); + Style style = paint.getStyle(); - // draw - if (style == Style.FILL || style == Style.FILL_AND_STROKE) { - g.fillRect(left, top, width, height); - } + // draw + if (style == Style.FILL || style == Style.FILL_AND_STROKE) { + g.fillRect(left, top, width, height); + } - if (style == Style.STROKE || style == Style.FILL_AND_STROKE) { - g.drawRect(left, top, width, height); - } + if (style == Style.STROKE || style == Style.FILL_AND_STROKE) { + g.drawRect(left, top, width, height); + } - // dispose Graphics2D object - g.dispose(); + // dispose Graphics2D object + g.dispose(); + } } /* (non-Javadoc) @@ -809,29 +811,31 @@ public class Canvas extends _Original_Canvas { @Override public void drawRoundRect(RectF rect, float rx, float ry, Paint paint) { // get current graphisc - Graphics2D g = getGraphics2d(); + if (rect.width() != 0 && rect.height() != 0) { + Graphics2D g = getGraphics2d(); - g = getNewGraphics(paint, g); + g = getNewGraphics(paint, g); - Style style = paint.getStyle(); + Style style = paint.getStyle(); - // draw + // draw - int arcWidth = (int)(rx * 2); - int arcHeight = (int)(ry * 2); + int arcWidth = (int)(rx * 2); + int arcHeight = (int)(ry * 2); - if (style == Style.FILL || style == Style.FILL_AND_STROKE) { - g.fillRoundRect((int)rect.left, (int)rect.top, (int)rect.width(), (int)rect.height(), - arcWidth, arcHeight); - } + if (style == Style.FILL || style == Style.FILL_AND_STROKE) { + g.fillRoundRect((int)rect.left, (int)rect.top, (int)rect.width(), (int)rect.height(), + arcWidth, arcHeight); + } - if (style == Style.STROKE || style == Style.FILL_AND_STROKE) { - g.drawRoundRect((int)rect.left, (int)rect.top, (int)rect.width(), (int)rect.height(), - arcWidth, arcHeight); - } + if (style == Style.STROKE || style == Style.FILL_AND_STROKE) { + g.drawRoundRect((int)rect.left, (int)rect.top, (int)rect.width(), (int)rect.height(), + arcWidth, arcHeight); + } - // dispose Graphics2D object - g.dispose(); + // dispose Graphics2D object + g.dispose(); + } } |