Back

CreateButton

Hello World
Content:
- Styling
- Methods

Buttons created with the CreateButton method are used for interacting with the app.

btn = app.CreateButton( text, width, height, options ) → app object: Button

This is done by calling a callback function after clicking on the button. You can specify such a callback function with the SetOnTouch Method:

btn.SetOnTouch( btn_OnTouch );

function btn_OnTouch() {
// your OnTouch code goes here
}

Styling

You can allow the button to auto-size by leaving out the dimensions

Example - Default Size

function OnStart()
{
    lay = app.CreateLayout( "Linear", "VCenter,FillXY" );

    btn = app.CreateButton( "Press Me" );
    btn.SetOnTouch( SayHello );
    lay.AddChild( btn );


    app.AddLayout( lay );
}

function SayHello()
{
    app.ShowPopup("Hello World!");
}
    Copy     Copy All       Run      

or you can specify a width and height as decimal fractions.

Example - Fixed Size

function OnStart()
{
    lay = app.CreateLayout( "Linear", "VCenter,FillXY" );

    btn = app.CreateButton( "Press Me", 0.5, 0.2 );
    btn.SetOnTouch( SayHello );
    lay.AddChild( btn );


    app.AddLayout( lay );
}

function SayHello()
{
    app.ShowPopup("Hello World!");
}
    Copy     Copy All       Run      

Setting the width and height to -1 whilst using the “FillX” option will allow it to fill the layout width.

Example - Fill Layout Width

function OnStart()
{
    lay = app.CreateLayout( "Linear", "VCenter,FillXY" );
    lay.SetPadding( 0.02, 0.02, 0.02, 0.02 );

    btn = app.CreateButton( "Press Me", -1, -1, "FillX" );
    btn.SetOnTouch( SayHello );
    lay.AddChild( btn );


    app.AddLayout( lay );
}

function SayHello()
{
    app.ShowPopup("Hello World!");
}
    Copy     Copy All       Run      

You can customize the visual look in many ways by either using one of the existing style options “Alum” or “Gray”, or you can use “Custom” and define a custom style with the SetStyle method.

Example - Change Style

function OnStart()
{
    lay = app.CreateLayout( "Linear", "Vertical,FillXY" );
    lay.SetPadding( 0.1, 0.1, 0.1, 0 );

    b1 = app.CreateButton( "Normal", -1, -1, "FillX" );
    lay.AddChild( b1 );

    b2 = app.CreateButton( "Gray", -1, -1, "FillX,Gray" );
    lay.AddChild( b2 );

    b3 = app.CreateButton( "Alum", -1, -1, "FillX,Alum" );
    lay.AddChild( b3 );


    app.AddLayout( lay );
}
    Copy     Copy All       Run      

Methods

The following methods are available on the Button object:

Focus()
GetAbsHeight() → number: integer
GetAbsWidth() → number: integer
GetHeight( options ) → number
GetLeft( options ) → number
GetParent() → app object
GetPosition( options ) → object: { left, top, right, bottom }
GetText() → string
GetTextSize( mode ) → number
GetTop( options ) → number
GetType() → string: “Button”
GetVisibility() → string: “Show” or “Hide” or “Gone”
GetWidth( options ) → number
Gone()
Hide()
IsEnabled() → boolean
IsOverlap( obj, depth ) → boolean
IsVisible() → boolean
Method( name, types, p1, p2, p3, p4 ) → all types
SetScale( x, y )
Show()
boolean
app object
number
string
unknown
number: factor
number: fraction (0..1)
number: integer
number: milliseconds
number: pixel
number: -180..180
number: -100..100
number: 0..100
number: 0..0.99 or 1..256
string:
  hexadecimal: “#rrggbb”, “#aarrggbb”
  colourName: “red”, “green”, ...
string: comma “,” separated
string: html code
string: path to file or folder ( “/absolute/...” or “relative/...” )
string: comma “,” separated: “FontAwesome”, “Html”, “Monospace”, “Normal” or “Aluminium” or “Gray” or “Lego”, “SingleLine”, “Custom”, “NoPad”, “FillX/Y”, “NoSound”
string: “px”
string: “screen”, “px”
string: “left-right” or “right-left” or “top-bottom” or “bottom-top” or “bl-tr” or “br-tl” or “tl-br” or “tr-bl”
string: “repeat”
string: “Add” or “Multiply” or “clear” or “darken” or “lighten” or “overlay” or “screen” or “xor” or “src_in” or “src_out” or “src_atop” or “src_over” or “dst_in” or “dst_out” or “dst_atop” or “dst_over”
string: “start” or “middle” or “end”
string: “px” or “sp” or “dip” or “mm” or “pt”
string: “px” or “sp” or “dip” or “dp” or “mm” or “pt”
string: “px” or “dip” or “sp” or “mm” or “pt” or pl or ps
string: “Show” or “Hide” or “Gone”
string: “Linear.None” or “Quadratic.In/Out” or “Cubic.In/Out” or “Quartic.In/Out” or “Quintic.In/Out” or “Sinusoidal.In/Out” or “Exponential.In/Out” or “Circular.In/Out” or “Elastic.In/Out” or “Back.In/Out” or “Bounce.In/Out”
object: { x, y, w, w, sw, sh, rot }
list: boolean,char,byte,short,int,long,float,double,String,CharSequence,...
function()
btn.AdjustColor
Adjust the visual color effect of the control by setting the Hue (by angle in degrees in a color circle), the saturation, brightness and contrast of the control.
btn.ClearFocus
Removes the focus of the control so that the user no longer has immediate access to it.
btn.Focus
Set the focus to the control so that the user can interact with it immediately.
btn.GetAbsHeight
Get the absolute height of the control in pixels.
btn.GetAbsWidth
Get the absolute width of the control in pixels.
btn.GetHeight
Get the height of the control as screen height relative float or in pixels with the px option.
btn.GetLeft
Get the distance from the control to the left parent border as width relative float or in pixels with the px option.
btn.GetParent
Returns the parent control object where the object was added to - commonly a layout.
btn.GetPosition
Returns data about the position and size of the control.
If the screen option is given the position on the screen will be returned. Otherwise relative to the parent control.
The px options turns the relative values into pixels.
btn.GetText
Returns the current displayed text of the control.
btn.GetTextSize
Returns the current size of the contained text. If the px option is given the size will be retured in pixels.
btn.GetTop
Get the distance from the control to the upper parent border as height relative float or in pixels with the px option.
btn.GetType
Returns the control class name.
btn.GetVisibility
Returns the current visibility state of the control. The Values are:
Show: visible
Hide: invisible but still consuming space
Gone: invisible and not consuming space
btn.GetWidth
Get the width of the control as screen width relative float or in pixels with the px option.
btn.Gone
Hides the control without consuming any more layout space as if it were never there.
btn.Hide
Hide the control but keep the layout space free.
btn.IsEnabled
Returns whether the control is currently useable by the user.
btn.IsOverlap
Returns whether the control overlaps with another by a given distance.
btn.IsVisible
Returns whether the control is currently visible to the user, ignoring overlaying controls.
btn.Method
Allows access to other functions defined on the object in Java via reflection.

Note: This function is a premium feature. Please consider subscribing to Premium to use this feature and support DroidScript in its further development.
btn.SetBackAlpha
Set the transparency of the background by an alpha value between 0 (no transparency) and 0.99 (full transparent) or 1 (no transparency) and 256 (full transparent)
btn.SetBackColor
Changes the background color of the control.
btn.SetBackGradient
Define the background color of the control with a gradient. The default gradient direction is from top to bottom, but you can change it from left to right and the reversed versions of course.
btn.SetBackGradientRadial
Define a radial color gradient for the background of control.
btn.SetBackground
Changes the background to an image which can be repeated using the repeat option.
An image which is often used with that option is '/res/drawable/pattern_carbon' - try it out!
btn.SetColorFilter
Adjust the visual color effect with a color and a given BlendMode. More information about BlendMode can be found in the Android Developer page.
btn.SetEllipsize
Will cause the inner text to be broken with ... at the start or the end if it cannot fit in the control.
btn.SetEnabled
En/Disable the control physically and visually so that the user can/can not access the control. Events like OnTouch will still be fired.
btn.SetFontFile
Change the font style by defining a font file.
btn.SetHtml
Change the current text of the control to html-formatted text.
btn.SetMargins
Define a distance to other controls on each side of the control.
btn.SetOnLongTouch
Define a callback function which is called when the button has been long pressed.
btn.SetOnTouch
Define a callback function that is called when the user touches the control.
btn.SetPadding
Define distances that elements within the control are to maintain from the control borders.
btn.SetPosition
Defines the position and size for the control if the parent is an absolute layout.
btn.SetScale
Scales the control along with its contents by the factors passed to the function.
btn.SetSize
Change the size of the control in either screen relative values or in pixels if the px option was given.
btn.SetStyle
Customize the look of the button.
btn.SetText
Change the currently displayed text in the control.
btn.SetTextColor
Change the text color of the contained text.
btn.SetTextShadow
Define a shadow displayed around the control.
The sun is always shining so there has to be one. Always.
btn.SetTextSize
Change the size of the contained text.
btn.SetVisibility
Change the visibility of the control to one of the available modes:
Show: visible
Hide: invisible but still consuming space
Gone: invisible and not consuming space
btn.Show
Set the visibility of the control to “Show”.
btn.Tween
Performs an animation on the control.
The target object is for the position, size and rotation that the control has at the end of the animation.

The type specifies the behavior and the speed of the animation. Separated by a dot, you must also specify whether you want to apply this behavior to the beginning (In), end (Out), or to both (InOut) times of the animation.

With the amount of repeats you can control how many times you want to play the animation.

If you have jojo activated, the animation will alternate between forward and backward playback, so that if the repetition value is odd, the control will be at the start position again at the end of the animation.

Finally the callback function will be called after the animation has finished. Well, it's about time!