diff options
| author | Xavier Ducrohet <xav@android.com> | 2010-11-04 18:04:27 -0700 |
|---|---|---|
| committer | Xavier Ducrohet <xav@android.com> | 2010-11-08 16:13:28 -0800 |
| commit | e0c763f54f5848a2513990fe37791b6f60ef7760 (patch) | |
| tree | 61f4f1bd15ccb820d844c15496bb383f42c379af /tools | |
| parent | 3fe599ce21a3a28a03a2d575fdeedb7b2ac8590a (diff) | |
| download | frameworks_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.java | 13 | ||||
| -rw-r--r-- | tools/layoutlib/bridge/src/com/android/layoutlib/bridge/Bridge.java | 7 |
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(); |
