Skip to content

Commit 64cc034

Browse files
committed
feat: added StaticLayout.getDesiredWidth
1 parent 36e435c commit 64cc034

File tree

3 files changed

+21
-0
lines changed

3 files changed

+21
-0
lines changed

plugin/platforms/android/native-api-usage.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
"com.akylas.canvas*:*",
55
"android.graphics:Canvas*",
66
"android.graphics:Matrix*",
7+
"android.text:StaticLayout*",
8+
"android.text:Layout*",
79
"android.graphics:DashPathEffect*",
810
"android.graphics:LinearGradient*",
911
"android.graphics:RadialGradient*",

src/canvas.android.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -513,6 +513,22 @@ export class StaticLayout extends ProxyClass<android.text.StaticLayout> {
513513

514514
return this;
515515
}
516+
517+
public static getDesiredWidth(...args) {
518+
for (let index = 0; index < args.length; index++) {
519+
const element = args[index];
520+
if (element && element.getNative) {
521+
args[index] = element.getNative();
522+
} else if (Array.isArray(element)) {
523+
args[index] = arrayToNativeArray(element, false, false);
524+
}
525+
if (index === args.length - 1 && !(args[index] instanceof android.text.TextPaint)) {
526+
args[index] = new android.text.TextPaint(args[index]);
527+
}
528+
}
529+
//@ts-ignore
530+
return android.text.StaticLayout.getDesiredWidth(...args);
531+
}
516532
}
517533
let Cap, Direction, DrawFilter, FillType, Join, Matrix, Op, PathEffect, Rect, RectF, Style, TileMode, FontMetrics, Align, LayoutAlignment;
518534
let PorterDuffMode, PorterDuffXfermode;

src/canvas.d.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,9 @@ export class Paint {
9494
export class StaticLayout extends android.text.StaticLayout {
9595
constructor(text: any, paint: Paint, width: number, align, spacingmult, spacingadd, includepad);
9696
public draw(canvas: any, path?: any, paint?: any, param3?: number): void;
97+
98+
static getDesiredWidth(text: any, paint: any);
99+
static getDesiredWidth(text: any, start: number, end: number, paint: any);
97100
}
98101

99102
export class FontMetrics {

0 commit comments

Comments
 (0)