Loading tools/layoutlib/bridge/src/android/graphics/Canvas.java +14 −2 Original line number Diff line number Diff line Loading @@ -31,6 +31,7 @@ import android.graphics.Paint.Style; import android.graphics.Region.Op; import java.awt.AlphaComposite; import java.awt.BasicStroke; import java.awt.Color; import java.awt.Composite; import java.awt.Graphics2D; Loading Loading @@ -104,12 +105,23 @@ public class Canvas extends _Original_Canvas { * <p/>The object must be disposed ({@link Graphics2D#dispose()}) after being used. */ private Graphics2D getNewGraphics(Paint paint, Graphics2D g) { // make new one g = (Graphics2D)g.create(); g.setColor(new Color(paint.getColor())); int alpha = paint.getAlpha(); float falpha = alpha / 255.f; if (paint.getStyle() == Style.STROKE) { g.setStroke(new BasicStroke( paint.getStrokeWidth(), paint.getStrokeCap().getJavaCap(), paint.getStrokeJoin().getJavaJoin(), paint.getStrokeMiter() // FIXME: add dash info. )); } Xfermode xfermode = paint.getXfermode(); if (xfermode instanceof PorterDuffXfermode) { PorterDuff.Mode mode = ((PorterDuffXfermode)xfermode).getMode(); Loading Loading @@ -784,7 +796,7 @@ public class Canvas extends _Original_Canvas { private final void doDrawRect(int left, int top, int width, int height, Paint paint) { // get current graphisc if (width != 0 && height != 0) { if (width > 0 && height > 0) { Graphics2D g = getGraphics2d(); g = getNewGraphics(paint, g); Loading @@ -811,7 +823,7 @@ public class Canvas extends _Original_Canvas { @Override public void drawRoundRect(RectF rect, float rx, float ry, Paint paint) { // get current graphisc if (rect.width() != 0 && rect.height() != 0) { if (rect.width() > 0 && rect.height() > 0) { Graphics2D g = getGraphics2d(); g = getNewGraphics(paint, g); Loading tools/layoutlib/bridge/src/android/graphics/Paint.java +27 −0 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ import android.text.SpannableStringBuilder; import android.text.SpannedString; import android.text.TextUtils; import java.awt.BasicStroke; import java.awt.Font; import java.awt.Toolkit; import java.awt.font.FontRenderContext; Loading Loading @@ -127,6 +128,19 @@ public class Paint extends _Original_Paint { this.nativeInt = nativeInt; } final int nativeInt; /** custom for layoutlib */ public int getJavaCap() { switch (this) { case BUTT: return BasicStroke.CAP_BUTT; case ROUND: return BasicStroke.CAP_ROUND; default: case SQUARE: return BasicStroke.CAP_SQUARE; } } } /** Loading @@ -151,6 +165,19 @@ public class Paint extends _Original_Paint { this.nativeInt = nativeInt; } final int nativeInt; /** custom for layoutlib */ public int getJavaJoin() { switch (this) { default: case MITER: return BasicStroke.JOIN_MITER; case ROUND: return BasicStroke.JOIN_ROUND; case BEVEL: return BasicStroke.JOIN_BEVEL; } } } /** Loading Loading
tools/layoutlib/bridge/src/android/graphics/Canvas.java +14 −2 Original line number Diff line number Diff line Loading @@ -31,6 +31,7 @@ import android.graphics.Paint.Style; import android.graphics.Region.Op; import java.awt.AlphaComposite; import java.awt.BasicStroke; import java.awt.Color; import java.awt.Composite; import java.awt.Graphics2D; Loading Loading @@ -104,12 +105,23 @@ public class Canvas extends _Original_Canvas { * <p/>The object must be disposed ({@link Graphics2D#dispose()}) after being used. */ private Graphics2D getNewGraphics(Paint paint, Graphics2D g) { // make new one g = (Graphics2D)g.create(); g.setColor(new Color(paint.getColor())); int alpha = paint.getAlpha(); float falpha = alpha / 255.f; if (paint.getStyle() == Style.STROKE) { g.setStroke(new BasicStroke( paint.getStrokeWidth(), paint.getStrokeCap().getJavaCap(), paint.getStrokeJoin().getJavaJoin(), paint.getStrokeMiter() // FIXME: add dash info. )); } Xfermode xfermode = paint.getXfermode(); if (xfermode instanceof PorterDuffXfermode) { PorterDuff.Mode mode = ((PorterDuffXfermode)xfermode).getMode(); Loading Loading @@ -784,7 +796,7 @@ public class Canvas extends _Original_Canvas { private final void doDrawRect(int left, int top, int width, int height, Paint paint) { // get current graphisc if (width != 0 && height != 0) { if (width > 0 && height > 0) { Graphics2D g = getGraphics2d(); g = getNewGraphics(paint, g); Loading @@ -811,7 +823,7 @@ public class Canvas extends _Original_Canvas { @Override public void drawRoundRect(RectF rect, float rx, float ry, Paint paint) { // get current graphisc if (rect.width() != 0 && rect.height() != 0) { if (rect.width() > 0 && rect.height() > 0) { Graphics2D g = getGraphics2d(); g = getNewGraphics(paint, g); Loading
tools/layoutlib/bridge/src/android/graphics/Paint.java +27 −0 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ import android.text.SpannableStringBuilder; import android.text.SpannedString; import android.text.TextUtils; import java.awt.BasicStroke; import java.awt.Font; import java.awt.Toolkit; import java.awt.font.FontRenderContext; Loading Loading @@ -127,6 +128,19 @@ public class Paint extends _Original_Paint { this.nativeInt = nativeInt; } final int nativeInt; /** custom for layoutlib */ public int getJavaCap() { switch (this) { case BUTT: return BasicStroke.CAP_BUTT; case ROUND: return BasicStroke.CAP_ROUND; default: case SQUARE: return BasicStroke.CAP_SQUARE; } } } /** Loading @@ -151,6 +165,19 @@ public class Paint extends _Original_Paint { this.nativeInt = nativeInt; } final int nativeInt; /** custom for layoutlib */ public int getJavaJoin() { switch (this) { default: case MITER: return BasicStroke.JOIN_MITER; case ROUND: return BasicStroke.JOIN_ROUND; case BEVEL: return BasicStroke.JOIN_BEVEL; } } } /** Loading