summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorXavier Ducrohet <xav@android.com>2010-11-04 18:04:27 -0700
committerXavier Ducrohet <xav@android.com>2010-11-08 16:13:28 -0800
commite0c763f54f5848a2513990fe37791b6f60ef7760 (patch)
tree61f4f1bd15ccb820d844c15496bb383f42c379af /tools
parent3fe599ce21a3a28a03a2d575fdeedb7b2ac8590a (diff)
downloadframeworks_base-e0c763f54f5848a2513990fe37791b6f60ef7760.zip
frameworks_base-e0c763f54f5848a2513990fe37791b6f60ef7760.tar.gz
frameworks_base-e0c763f54f5848a2513990fe37791b6f60ef7760.tar.bz2
Layoutlib: more text drawing.
Change-Id: I32f46d23e746b095be0577a53b61567a868f0b8a
Diffstat (limited to 'tools')
-rw-r--r--tools/layoutlib/bridge/src/android/graphics/Canvas_Delegate.java13
-rw-r--r--tools/layoutlib/bridge/src/com/android/layoutlib/bridge/Bridge.java7
2 files changed, 9 insertions, 11 deletions
diff --git a/tools/layoutlib/bridge/src/android/graphics/Canvas_Delegate.java b/tools/layoutlib/bridge/src/android/graphics/Canvas_Delegate.java
index 80db8c3..ce8e960 100644
--- a/tools/layoutlib/bridge/src/android/graphics/Canvas_Delegate.java
+++ b/tools/layoutlib/bridge/src/android/graphics/Canvas_Delegate.java
@@ -886,23 +886,22 @@ public class Canvas_Delegate {
native_drawText(nativeCanvas, buffer, 0, count, x, y, flags, paint);
}
-
/*package*/ static void native_drawTextRun(int nativeCanvas, String text,
int start, int end, int contextStart, int contextEnd,
float x, float y, int flags, int paint) {
- // FIXME
- throw new UnsupportedOperationException();
- }
+ int count = end - start;
+ char[] buffer = TemporaryBuffer.obtain(count);
+ TextUtils.getChars(text, start, end, buffer, 0);
+ native_drawText(nativeCanvas, buffer, start, end, x, y, flags, paint);
+ }
/*package*/ static void native_drawTextRun(int nativeCanvas, char[] text,
int start, int count, int contextStart, int contextCount,
float x, float y, int flags, int paint) {
- // FIXME
- throw new UnsupportedOperationException();
+ native_drawText(nativeCanvas, text, 0, count, x, y, flags, paint);
}
-
/*package*/ static void native_drawPosText(int nativeCanvas,
char[] text, int index,
int count, float[] pos,
diff --git a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/Bridge.java b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/Bridge.java
index cdb4148..bd00b88 100644
--- a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/Bridge.java
+++ b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/Bridge.java
@@ -430,7 +430,7 @@ public final class Bridge implements ILayoutBridge {
MeasureSpec.UNSPECIFIED); // this lets us know the actual needed size
h_spec = MeasureSpec.makeMeasureSpec(screenHeight - screenOffset,
MeasureSpec.UNSPECIFIED); // this lets us know the actual needed size
- view.measure(w_spec, h_spec);
+ root.measure(w_spec, h_spec);
int neededWidth = root.getChildAt(0).getMeasuredWidth();
if (neededWidth > screenWidth) {
@@ -448,10 +448,10 @@ public final class Bridge implements ILayoutBridge {
w_spec = MeasureSpec.makeMeasureSpec(screenWidth, MeasureSpec.EXACTLY);
h_spec = MeasureSpec.makeMeasureSpec(screenHeight - screenOffset,
MeasureSpec.EXACTLY);
- view.measure(w_spec, h_spec);
+ root.measure(w_spec, h_spec);
// now do the layout.
- view.layout(0, screenOffset, screenWidth, screenHeight);
+ root.layout(0, screenOffset, screenWidth, screenHeight);
// draw the views
// create the BufferedImage into which the layout will be rendered.
@@ -468,7 +468,6 @@ public final class Bridge implements ILayoutBridge {
Canvas_Delegate canvasDelegate = Canvas_Delegate.getDelegate(canvas);
canvasDelegate.setLogger(logger);
-
root.draw(canvas);
canvasDelegate.dispose();