DroidScript
DroidScript
учимся и разрабатываем

Кнопка

15.05.2020

Для создания кнопок используется конструктор CreateButton:

app.CreateButton ( str text, float width, float height, [(str)] options )

Параметры:

  • text - надпись на кнопке
  • width - ширина кнопки
  • height - высота кнопки
  • options:
    • Опции управления отображением:
      • Alum – алюминиевый стиль
      • Bar-dark - закруглённая тёмная
      • Bar-green - закруглённая зелёная
      • Bar-gray - закруглённая светло-серая
      • Custom – пользовательский стиль
      • Gray серый стиль
      • Grayxs - светло-серый стиль
      • Lego - оранжевая кнопка в стиле Лего
      • Lego-bw - белая кнопка в стиле Лего
      • Lego-screen - оконная кнопка в стиле Лего
      • Nopad - без внутренних отступов
      • Trans - прозрачный стиль
    • Опции управления размером:
      • FillX - установить ширину равной ширине его родителя
      • FillY - установить высоту равной высоте его родителя
      • FillXY - установить размер компоновщика равной размерам родителя
    • Опции оформления надписи:
      • FontAwesome – разрешает использовать пиктограммы в надписи
      • Html – разрешает использовать следующие теги в надписи:
        • <a href="...">
        • <img src="...">
        • <font color="..." face="...">
        • <b>, <u>, <i>, <strong>, <tt>
        • <small>, <big>
        • <br>
        • <div>, <p>
        • <h1>,  <h2>, <h3>, <h4>,  <h5>, <h6>
        • <sub>, <sup>
      • Monospace - задаёт моноширинный шрифт для надписи
      • Singleline - задаёт однострочную надпись
    • Опции действий:
      • Link - задание метода для движения NXT
      • NoSound - не воспроизводить звук при нажатии

При отсутствиии всех вараметров создаётся кнопка с надписью "undefined". В DroidScript можно создавать кнопки по умолчанию разных стилей и пользовательские при помощи дополнительных опций конструктора а также методов.

Кнопки по умолчанию имеют полупрозрачный тёмно-серый фон и надпись белого цвета, что позволяет им хорошо выглядеть на любом фоне.

Базовый пример

Выполнить в DS

Тень в стиле кнопоки осуществляет только затенение углов.

Кнопки можно создавать разной формы:

  • прямоугольные
  • квадратные
  • пилюлеобразные
  • круглые

При помощи отсечения одной из сторон кнопки с закруглёнными углами можно получить вкладки.

Недокументированной возможностью кнопок является оформление при помощи них областей с закруглёнными углами. Нестандарные элементы можно нарисовать на прозрачном компоновщике с использованием холста, но гораздо проще закруглённые углы получить из кнопки.

Выполнить в DS

Методы:

  • GetText():str - возвращает текст надписи
    Выполнить в DS
    app.ShowPopup( myObject.GetText() );
  • GetTextSize( ('px','dip','sp','mm', 'pt') mode ):int - возвращает размер шрифта надписи в заданных единицах
    Выполнить в DS
    app.ShowPopup( myObject.GetTextSize( 'px' ));
  • GetType():str - возвращает тип объекта
    Выполнить в DS
    app.ShowPopup( myObject.GetType() );
  • SetBackColor( str clr ) - задаёт цвет фона кнопки
    Выполнить в DS
    myObject.SetBackColor( '#ff337700' );
  • SetEllipsize( (str) mode ) - задаёт режим отображения текста, если он не поместился в поле надписи. Устанавливает многоточие в начале, середине или конце надписи ('start', ''middle', 'end', 'marq')
    Выполнить в DS
    myObject.SetEllipsize( 'start' );
  • SetEnabled( bool enable ) - задаёт активность кнопки
    Выполнить в DS
    myObject.SetEnabled ( false );
  • SetFontFile( str file ) - задаёт файл шрифта:
    Выполнить в DS
    myObject.SetFontFile ( '/system/fonts/DroidSansMono.ttf' );
  • SetHtml( str html ) - устанавливает текст надписи с тегами myObject.SetText( 'Это кнопка' );
    Выполнить в DS
    myObject.SetHtml( '<b>Это</b> <font color="#ff0000">кнопка</font>' );
  • SetOnLongTouch( callback ) - задаёт ФОВ для обработки долгого прикосновения. В функцию может передаваться объект события с полями:
    • {} source - объект-источник события
    • str action - действие 'Down', 'Move' или 'Up'
    • int count - количество одновременных касаний (пальцами)
    • float X - горизонтальная координата касания
    • float Y - вертикальная координата касания
    • [float] x - список горизонтальных коордиат точек касаний
    • [float] y - список вертикальных координат точек касаний

    Выполнить в DS
    myObject.SetOnLongTouch( function(){ app.ShowPopup( 'Прикоснулись палецем' ); });

  • SetOnTouch( callback ) - задаёт ФОВ для обработки короткого прикосновения. В функцию может передаваться объект события с полями:
    • {} source - объект-источник события
    • str action - действие 'Down', 'Move' или 'Up'
    • int count - количество одновременных касаний (пальцами)
    • float X - горизонтальная координата касания
    • float Y - вертикальная координата касания
    • [float] x - список горизонтальных коордиат точек касаний
    • [float] y - список вертикальных координат точек касаний

    Выполнить в DS
    myObject.SetOnTouch( function(){ app.ShowPopup( 'Прикоснулись палецем' ); });

  • SetStyle( str clr1, str clr2, int radius, str strokeClr, int strokeWidth, (0..1) shadow ) - задаёт стиль для пользовательской кнопки:
    • clr1 - цвет верхней половины кнопки
    • clr2 - цвет нижней половины кнопки
    • radius - радиус закругления углов
    • strokeClr - цвет границ (рамки контура)
    • strokeWidth - ширина границ
    • shadow - сила тени
    Выполнить в DS
    customObject.SetStyle( '#ffff0000', '#ffffff00', 8, '#ff00ff00', 2, 0.5 );
  • SetText( str text ) - устанавливает текст надписи
    Выполнить в DS
    myObject.SetText( 'Это кнопка' );
  • SetTextColor( str clr ) - задаёт цвет надписи
    Выполнить в DS
    myObject.SetTextColor( '#8800ff00' );
  • SetTextShadow( int radius, int dx, int dy, str color ) - задаёт тень надписи заданного радиуса действия, смещения и цвета
    Выполнить в DS
    myObject.SetTextShadow( 2, 1, 1, '#ff333333' );
  • SetTextSize( intt size, ('px','dip','sp','mm', 'pt') mode ) - задаёт размер шрифта надписи в указанной единице
    Выполнить в DS
    myObject.SetTextSize( 40, 'px' );
© 2016-2024 
actech