am 2b30a4a5: Merge "ADT/Layoutlib: properly handle stroke information." into eclair

Merge commit '2b30a4a50e24080fdd8b796e4a64447f223d4522' into eclair-plus-aosp

* commit '2b30a4a50e24080fdd8b796e4a64447f223d4522':
  ADT/Layoutlib: properly handle stroke information.
This commit is contained in:
Xavier Ducrohet
2010-01-18 23:42:28 -08:00
committed by Android Git Automerger
2 changed files with 41 additions and 2 deletions

View File

@@ -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;
@@ -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();
@@ -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);
@@ -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);

View File

@@ -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;
@@ -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;
}
}
}
/**
@@ -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;
}
}
}
/**