summaryrefslogtreecommitdiffstats
path: root/tools/layoutlib
diff options
context:
space:
mode:
authorXavier Ducrohet <xav@google.com>2010-01-21 17:55:17 -0800
committerAndroid Git Automerger <android-git-automerger@android.com>2010-01-21 17:55:17 -0800
commit4e8e87d905054737dc51ef0ba90f0a0a518be000 (patch)
tree4558d5ea66dafef88b0dbc9ad61f0172d1c73211 /tools/layoutlib
parentfa5875a3c5089069655093fa1f5cab80f6f9fe96 (diff)
parentc0ea805c649666b55d4dde09eb72dcccfa8bccc3 (diff)
downloadframeworks_base-4e8e87d905054737dc51ef0ba90f0a0a518be000.zip
frameworks_base-4e8e87d905054737dc51ef0ba90f0a0a518be000.tar.gz
frameworks_base-4e8e87d905054737dc51ef0ba90f0a0a518be000.tar.bz2
am c0ea805c: am 2b30a4a5: Merge "ADT/Layoutlib: properly handle stroke information." into eclair
Merge commit 'c0ea805c649666b55d4dde09eb72dcccfa8bccc3' * commit 'c0ea805c649666b55d4dde09eb72dcccfa8bccc3': ADT/Layoutlib: properly handle stroke information.
Diffstat (limited to 'tools/layoutlib')
-rw-r--r--tools/layoutlib/bridge/src/android/graphics/Canvas.java16
-rw-r--r--tools/layoutlib/bridge/src/android/graphics/Paint.java27
2 files changed, 41 insertions, 2 deletions
diff --git a/tools/layoutlib/bridge/src/android/graphics/Canvas.java b/tools/layoutlib/bridge/src/android/graphics/Canvas.java
index c49e11e..9111286 100644
--- a/tools/layoutlib/bridge/src/android/graphics/Canvas.java
+++ b/tools/layoutlib/bridge/src/android/graphics/Canvas.java
@@ -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);
diff --git a/tools/layoutlib/bridge/src/android/graphics/Paint.java b/tools/layoutlib/bridge/src/android/graphics/Paint.java
index 312dab3..2d03618 100644
--- a/tools/layoutlib/bridge/src/android/graphics/Paint.java
+++ b/tools/layoutlib/bridge/src/android/graphics/Paint.java
@@ -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;
+ }
+ }
}
/**