FormulLib

Builder formulas for android

License

License

MIT
Categories

Categories

ORM Data
GroupId

GroupId

team.fastflow.kusu
ArtifactId

ArtifactId

team.fastflow.kusu.constructor-formul
Last Version

Last Version

1.0.3-BETA
Release Date

Release Date

Type

Type

aar
Description

Description

FormulLib
Builder formulas for android
Project URL

Project URL

https://github.com/KuznetsSudby/FormulLib
Source Code Management

Source Code Management

https://github.com/KuznetsSudby/FormulLib.git

Download team.fastflow.kusu.constructor-formul

How to add to project

<!-- https://jarcasting.com/artifacts/team.fastflow.kusu/team.fastflow.kusu.constructor-formul/ -->
<dependency>
    <groupId>team.fastflow.kusu</groupId>
    <artifactId>team.fastflow.kusu.constructor-formul</artifactId>
    <version>1.0.3-BETA</version>
    <type>aar</type>
</dependency>
// https://jarcasting.com/artifacts/team.fastflow.kusu/team.fastflow.kusu.constructor-formul/
implementation 'team.fastflow.kusu:team.fastflow.kusu.constructor-formul:1.0.3-BETA'
// https://jarcasting.com/artifacts/team.fastflow.kusu/team.fastflow.kusu.constructor-formul/
implementation ("team.fastflow.kusu:team.fastflow.kusu.constructor-formul:1.0.3-BETA")
'team.fastflow.kusu:team.fastflow.kusu.constructor-formul:aar:1.0.3-BETA'
<dependency org="team.fastflow.kusu" name="team.fastflow.kusu.constructor-formul" rev="1.0.3-BETA">
  <artifact name="team.fastflow.kusu.constructor-formul" type="aar" />
</dependency>
@Grapes(
@Grab(group='team.fastflow.kusu', module='team.fastflow.kusu.constructor-formul', version='1.0.3-BETA')
)
libraryDependencies += "team.fastflow.kusu" % "team.fastflow.kusu.constructor-formul" % "1.0.3-BETA"
[team.fastflow.kusu/team.fastflow.kusu.constructor-formul "1.0.3-BETA"]

Dependencies

compile (1)

Group / Artifact Type Version
com.android.support » appcompat-v7 jar 25.1.0

Project Modules

There are no modules declared in this project.

FormulLib

Maven Central

Get it on Google Play
Слово Формула Формула
example example example

Начало

в build.gradle

dependencies {
    compile 'team.fastflow.kusu:constructor-formul:1.1.0-BETA'
}

в xml

	<kusu.constructor.formul.Views.Formul
		android:layout_width="match_parent"
		android:layout_height="match_parent"/>

===

проверить формулу

 public Result getResult(boolean backlight, boolean movable, boolean clear, boolean check) 

Возвращает текущее состояния формулы - сколько правильных/неправильных/незаполненных. Переменные отвечают:

  1. за подсветку правильных/неправильных ответов
  2. за возможность двигать блоки после результата
  3. очистить ли поле после результата
  4. показать ли большой знак результата

Атрибуты у View

Маштабирование

fs:min_scale format="float"
fs:max_scale format="float"
fs:autoscale format="boolean"
fs:autoscale_width format="boolean"
fs:movable_extrascale format="float"

Атрибуты отвечают за:

        1. границы min max коэффициента маcштабирования на экране.
    1. автомаcштабирование
    1. автомаcштабирование ширины блока по внутреннему контенту (ширина двигаемых и изменяемых блоков вычисляется по самому длинному тексту)
    1. увеличение блока при перемещении

===

Размеры

fs:block_size format="dimension"
fs:block_factor format="float"
fs:percent format="float"
fs:height format="dimension"
fs:percent_height format="boolean"
fs:padding_factor format="float"
fs:text_percent format="float"
fs:division_factor format="float"
fs:division_padding_factor format="float"
fs:movable_divider_factor format="float"
fs:group_movables format="boolean"
fs:check_size format="float"

Атрибуты отвечают за:

    1. стандартный размер блока для расчета (его высота)
    1. коэффициент ширины стандартного блока (относителльно block_size)
        1. расчет высоты части с формулой (относительно всей высоты View)
    1. коэффициент отступов внтури поля (относителльно block_size)
    1. коэффициент высоты текста (относителльно block_size)
        1. коэффициенты высоты линии деления и ее отступов (относителльно block_size)
    1. коэффициент свободного пространства между двигаемыми блоками (относителльно block_size)
    1. группировку (по центру или растягивать на всю ширину)
    1. коэффициет размера большого знака результата (относительно высоты части с формулой)

===

Цвета

fs:background_color format="color"
fs:text_color format="color"
fs:division_color format="color"

Атрибуты отвечают за:

    1. цвет фона
    1. цвет текста
    1. цвет линии деления

===

Drawables

fs:default_block format="reference"
fs:changeable_block format="reference"
fs:movable_block format="reference"
fs:unselected_block format="reference"
fs:good_block format="reference"
fs:bad_block format="reference"
fs:plus_block format="reference"
fs:minus_block format="reference"
fs:equally_block format="reference"
fs:bkt_left_block format="reference"
fs:bkt_right_block format="reference"
fs:multiply_block format="reference"
fs:division_block format="reference"
fs:check_bad format="reference"
fs:check_good format="reference"

Атрибуты отвечают за:

        1. фон блоков
        1. фон подсветки блоков
        1. изображения для символов
        1. изображения больших знаков результата

Работа с парсером формул

    private char BLOCK_DEF = '@';
    private char CHANGEABLE_DEF = '&';
    private boolean seeMultiply = true;
    private boolean seeBrackets = false;
    private boolean seeSquareBrackets = false;
  • Символ, который ограничивает область, берущуюся без изменений. Например, "@2/2@" преобразуется в блок со значение "2/2", а не в блок деления
  • Символ, которым помечаются Changable блоки. Рабоает и внутри области выделенной, с помощью BLOCK_DEF
  • Отображать ли знак умножения (затрагивает только знаки вне области выделенной, с помощью BLOCK_DEF)
  • Отображать ли круглые скобки (затрагивает только знаки вне области выделенной, с помощью BLOCK_DEF)
  • Отображать ли квадратные скобки (затрагивает только знаки вне области выделенной, с помощью BLOCK_DEF)

Типы Leaf

Nextable

Блок, отвечающий за постоянный символ. Единичный. В list лежит 1 элемент - следующий блок. В symbols лежит отображаемый текст.

===

Changable

Блок, отвечающий за изменяемый символ. Единичный. В list лежит 1 элемент - следующий блок. В symbols лежит правильный текст. Текст для отображения берется из block (в который помещается Movable)

===

Movable

Блок, отвечающий за двигаемый символ. Единичный. В symbols лежит отображаемый текст.

===

Power

Блок, отвечающий за степень. Не отображаемый. В list лежит:

  1. следующий блок, который образует значение степени.
  2. следующий блок, который образует значения после выхода из части со степенью.

===

Division

Блок, отвечающий за степень. Не отображаемый. В list лежит:

  1. следующий блок, который образует значение числителя.
  2. следующий блок, который образует значение знаменателя.
  3. следующий блок, который образует значения после выхода из части с делением.

Copyright (c) 2016 FastFlow team

Полный текст лицензии содержится в файле License.md

Versions

Version
1.0.3-BETA