[Paid] Path Maker An Extension for ai2 to render animated Text

🧩 PathMaker

An extension for MIT App Inventor 2.
Developed by th using Fast. An Extension to render animated text paths with customizable properties such as text size, color, stroke and width settings. This component supports both synchronous and asynchronous modes for rendering text paths, allowing for smooth animations and dynamic visual representations.

:memo: Specifications


:floppy_disk: Size: 46.31 KB
:gear: Version: 1.0
:iphone: Minimum API Level: 7
:date: Updated On: 2025-02-17T18:30:00Z
:computer: Built & documented using: FAST-CLI
Paid Price - Dollar - 2💲
INR - 175rs.
Contact Me pm here @TechHamara
Telegram: here
More info Check Out Here
Find more Extension here


Demo

37df6593-d44f-4b77-8d87-1d1772d0742e

a16e57ee-9640-4b01-9048-9b8e51e5e609

8046cdd6-c413-48a8-adcb-02031f1e967c

5988ea66-0cf3-4742-8ba4-cdeb2ef2ba64

7d2a9e66-5282-4be8-8b71-f184c31bc191

8c27bc91-4d78-4f33-bba7-cfcddd02ca13

YouTube

Events:

PathMaker has total 5 events.

OnAnimationStartBlock

:yellow_heart: OnAnimationStart

Event raised when animation starts

OnAnimationEndBlock

:yellow_heart: OnAnimationEnd

Event raised when animation ends

OnAnimationCancelBlock

:yellow_heart: OnAnimationCancel

Event raised when animation is cancelled

OnAnimationRepeatBlock

:yellow_heart: OnAnimationRepeat

Event raised when animation repeats

OnProgressChangedBlock

:yellow_heart: OnProgressChanged

Event raised when progress changes. Returns current progress value between 0 and 1

Parameter Type
progress number

Methods:

PathMaker has total 29 methods.

InitializeTextPathBlock

:purple_heart: InitializeTextPath

Initialize a TextPathView inside an arrangement. Pass true for Sync mode or false for Async mode.

Parameter Type
arrangement component
syncMode boolean

SetPenPainterBlock

:purple_heart: SetPenPainter

Set a custom painter for the path effect (pen painter).

StartAnimationBlock

:purple_heart: StartAnimation

Start the path animation with default parameters (0 to 1).

StartAnimationWithPositionsBlock

:purple_heart: StartAnimationWithPositions

Start the animation from the given start and end positions.

Parameter Type
start number
end number

CustomStartAnimationBlock

:purple_heart: CustomStartAnimation

Start the animation with additional parameters for style and repeat count.

Parameter Type
start number
end number
animationStyle number
repeatCount number

StopAnimationBlock

:purple_heart: StopAnimation

Stop the animation.

PauseAnimationBlock

:purple_heart: PauseAnimation

Pause the animation.

ResumeAnimationBlock

:purple_heart: ResumeAnimation

Resume the animation.

ClearBlock

:purple_heart: Clear

Clear the animation path.

SetAnimationStyleBlock

:purple_heart: SetAnimationStyle

Set the animation style. 0 = Linear, 1 = Ease-In-Out.

Parameter Type
style number

SetRepeatCountBlock

:purple_heart: SetRepeatCount

Set the repeat count for the animation.

Parameter Type
count number

SetPercentageBlock

:purple_heart: SetPercentage

Set the animation percentage manually. Value should be between 0.0 and 1.0.

Parameter Type
percentage number

GetRepeatCountBlock

:purple_heart: GetRepeatCount

Get the current repeat count for the animation.

SetArrowPainterBlock

:purple_heart: SetArrowPainter

Set the Arrow painter with specified radius and angle (in pixels and radians respectively)

Parameter Type
radius number
angle number

SetFireworksPainterBlock

:purple_heart: SetFireworksPainter

Set the Fireworks painter with specified radius and angle (in pixels and radians respectively)

Parameter Type
radius number
angle number

GetCurrentPainterRadiusBlock

:purple_heart: GetCurrentPainterRadius

Get the current painter's radius in pixels

GetCurrentPainterAngleBlock

:purple_heart: GetCurrentPainterAngle

Get the current painter's angle in radians

IsRepeatTypeNoneBlock

:purple_heart: IsRepeatTypeNone

Check if the current repeat type is NONE.

IsRepeatTypeRestartBlock

:purple_heart: IsRepeatTypeRestart

Check if the current repeat type is RESTART.

IsRepeatTypeReverseBlock

:purple_heart: IsRepeatTypeReverse

Check if the current repeat type is REVERSE.

CalculateAroundBlock

:purple_heart: CalculateAround

Calculate animation progress with Around strategy (for text path).

Parameter Type
progress number

CalculateLinearBlock

:purple_heart: CalculateLinear

Calculate animation progress with Linear strategy

Parameter Type
progress number

CalculateEaseInBlock

:purple_heart: CalculateEaseIn

Calculate animation progress with Ease-In strategy

Parameter Type
progress number

CalculateEaseOutBlock

:purple_heart: CalculateEaseOut

Calculate animation progress with Ease-Out strategy

Parameter Type
progress number

SetCustomPathPainterBlock

:purple_heart: SetCustomPathPainter

Set a custom path painter effect for the text path.

Parameter Type
radius number
color number

SetPathCalculatorBlock

:purple_heart: SetPathCalculator

Set a predefined PathCalculator. This method allows you to specify which type of PathCalculator to use for controlling the animation path. You can choose from predefined calculators such as MidCalculator, AroundCalculator, and BlinkCalculator. The calculator determines how the start and end values of the path are calculated based on the animation progress.

Parameters:

  • calculatorType: An integer representing the type of PathCalculator to use. Use constants CALCULATOR_MID = 0, CALCULATOR_AROUND = 1, CALCULATOR_BLINK = 2 to select the desired calculator.
Parameter Type
calculatorType number

SetTextSizeBlock

:purple_heart: SetTextSize

Set the text size for the text path.

Parameter Type
textSize number

SetTextColorBlock

:purple_heart: SetTextColor

Set the color for the text path (in ARGB format).

Parameter Type
color number

SetTextStrokeWidthBlock

:purple_heart: SetTextStrokeWidth

Set the stroke width for the text path (in pixels).

Parameter Type
strokeWidth number

Setters:

PathMaker has total 16 setter properties.

SetTextBlock

:green_heart: SetText

Set the text to be displayed as a path (in percentage).

  • Input type: text

SetStrokeWidthBlock

:green_heart: SetStrokeWidth

Set the stroke width for the text path (in pixels).

  • Input type: number

SetRadiusBlock

:green_heart: SetRadius

Set the radius for the text path (in pixels).

  • Input type: number

SetAngleBlock

:green_heart: SetAngle

Set the angle for the text path (in radians).

  • Input type: number

SetStartBlock

:green_heart: SetStart

Set the start position of the animation (0 to 1).

  • Input type: number

SetEndBlock

:green_heart: SetEnd

Set the end position of the animation (0 to 1).

  • Input type: number

SetShowPainterBlock

:green_heart: SetShowPainter

Set whether to show the painter (true if shown) (in percentage).

  • Input type: boolean

SetShowPainterActuallyBlock

:green_heart: SetShowPainterActually

Set whether to show the painter actually (true if shown) (in percentage).

  • Input type: boolean

ShowFillColorTextBlock

:green_heart: ShowFillColorText

Set whether to show fill color text (true if shown) (in percentage).

  • Input type: boolean

SetDurationBlock

:green_heart: SetDuration

Set the duration for the animation (in milliseconds).

  • Input type: number

SetRepeatStyleBlock

:green_heart: SetRepeatStyle

Set the repeat style for the animation (NONE, RESTART, REVERSE).

  • Input type: number

SetShowInStartBlock

:green_heart: SetShowInStart

Set whether to show the text path at the beginning (true if shown at the beginning).

  • Input type: boolean

SetTextInCenterBlock

:green_heart: SetTextInCenter

Set whether to center the text (true if centered).

  • Input type: boolean

SetPaintStrokeWidthBlock

:green_heart: SetPaintStrokeWidth

Set the width of the paint effect stroke (in pixels).

  • Input type: number

SetPaintStrokeColorBlock

:green_heart: SetPaintStrokeColor

Set the color of the paint effect stroke (in ARGB format).

  • Input type: number

SetRepeatTypeBlock

:green_heart: SetRepeatType

Set the repeat type of the animation (NONE, RESTART, REVERSE).

  • Input type: number

Getters:

PathMaker has total 9 getter properties.

RadiusBlock

:green_circle: Radius

Get the radius of the text path (in pixels).

  • Return type: number

StartBlock

:green_circle: Start

Get the start position of the animation (0 to 1).

  • Return type: number

EndBlock

:green_circle: End

Get the end position of the animation (0 to 1).

  • Return type: number

AutoStartBlock

:green_circle: AutoStart

Get the auto start setting (true if started automatically).

  • Return type: boolean

ShowInStartBlock

:green_circle: ShowInStart

Get the show in start setting (true if shown at the beginning).

  • Return type: boolean

TextInCenterBlock

:green_circle: TextInCenter

Get the text in center setting (true if centered).

  • Return type: boolean

PaintStrokeWidthBlock

:green_circle: PaintStrokeWidth

Get the current paint stroke width (in pixels).

  • Return type: number

PaintStrokeColorBlock

:green_circle: PaintStrokeColor

Get the current paint stroke color.

  • Return type: number

RepeatTypeBlock

:green_circle: RepeatType

Get the current repeat type.

  • Return type: number

Thanks

TechHamara
3 Likes

This looks fun but it would be better if you added text animations or something, like bendy or squashed text, idk

You can also set text and symbols support and add animation

1 Like