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:
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user