Форум программистов, компьютерный форум CyberForum.ru

Basic4Android

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 213, средняя оценка - 4.95
Pro_grammer
Модератор
5858 / 2018 / 385
Регистрация: 24.04.2011
Сообщений: 3,427
Записей в блоге: 9
#1

Basic для платформы Android - Basic4Android - Basic4Android

19.04.2014, 19:43. Просмотров 27281. Ответов 111
Метки нет (Все метки)

Если кто не знает Basic4Android это простой и мощный инструмент разработки приложений для устройств, работающих под управлением операционной системы Android. Язык Basic4Android очень похож на популярный и всеми нами любимый язык Visual Basic. Лично мне показалось, что он больше похож на VB.NET, ООП полноценный.
Basic для платформы Android - Basic4Android
Что можно на нём написать? Да в принципе всё, что и на Java, только быстрее. Игры, GPS навигация, управление звонками, контактами, СМС, FTP, HTTP, виджеты.
Basic для платформы Android - Basic4Android
Огромное кол-во готовых библиотек сильно упрощают программирование, высокоразвитый IDE, отладчик реального времени, возможность отладки как на различных моделях эмуляторов различных устройств ( можно настроить любые параметры устройства) так и на реальном устройстве.
Basic для платформы Android - Basic4Android
Basic для платформы Android - Basic4Android
Если вы знаете Java, то это ещё плюс - можно самому писать любые библиотеки и подключать к своему проекту на Basic4Android.
Basic4Android выдает честный код, реальный .apk файл, без встроенных интерпретаторов, такой, что и на выходе скажем с Eclipse.
Из недостатков можно назвать его платность ($59 USD). Но если вы будете использовать его для написания платных программ, то думаю это смешная цена. А если не будете, то кого волнует, сколько он стоит? Всех волнует, где взять новую версию, а с этим проблем пока нет.
Проблема с общением и поиском единомышленников. Русских сообществ практически нет, форума, где можно задать вопрос на русском языке тоже нет.
Собственно потому я и пытаюсь создать что то подобное в теме. Сам я начал плотное знакомство с этим ЯП примерно неделю назад. Перевел кое что из документации, разобрал несколько примеров, написал свое собственное приложение. Пока всё нравится, и Basic4Android реально торт.
Но торт скучно есть в одиночку. Буду рад, если найдутся заинтересованные люди, готовые поддержать разговор.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.04.2014, 19:43     Basic для платформы Android - Basic4Android
Посмотрите здесь:

Разработчик для платформы Android,Москва(от 60 до 100 т.р);
Разработчик для платформы Android, Санкт-Петербург(от 70 до 90 т.р);
Литература по Basic4Android для новичков Basic4Android
Ошибка "unknown android-api-level-9" при установке admob в eclipse Basic4Android
Есть ли возможность быстро и легко настроить B4A? Или сразу перейти на Android Studio? Basic4Android
Basic4Android Как подключить genymotion к basic4android?
Как отключить/изменить ресемплинг USB audio в Android 6 Basic4Android
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Runkin
55 / 55 / 3
Регистрация: 22.12.2011
Сообщений: 252
Записей в блоге: 2
25.04.2014, 19:17     Basic для платформы Android - Basic4Android #21
я тоже скачал, но он не рабочий походу!
ты уже разобрался с sql ? примеры по работе на оф форуме читаешь ?

Добавлено через 7 часов 10 минут
я делаю таймер который засекает 1-8 часов
1 час = 3600000 миллисекунд!
создаю таймер с тиком каждые "1000" = 1 сек
и каждую сек вычитаю 1000 мс

преобразую в время, и всё норм работает - но как только я скину апк файл на телефон и запускаю,
у меня в место 1 часа получается 5 часов! От чего такое может быть(в эмуляторе всё чётко!)
Pro_grammer
Модератор
5858 / 2018 / 385
Регистрация: 24.04.2011
Сообщений: 3,427
Записей в блоге: 9
25.04.2014, 21:21  [ТС]     Basic для платформы Android - Basic4Android #22
Цитата Сообщение от Runkin Посмотреть сообщение
От чего такое может быть(в эмуляторе всё чётко!)
А версии Андроида совпадают в эмуле и телефоне?
Да и можно же подключить сразу свой телефон в качестве устройства в режиме тестирования и там уже контролировать как изменяются переменные в отладчике.
Runkin
55 / 55 / 3
Регистрация: 22.12.2011
Сообщений: 252
Записей в блоге: 2
25.04.2014, 22:06     Basic для платформы Android - Basic4Android #23
Да версии одинаковы API 16
хм, а как тогда сделать - если на разных версиях такие азы различаются
Pro_grammer
Модератор
5858 / 2018 / 385
Регистрация: 24.04.2011
Сообщений: 3,427
Записей в блоге: 9
25.04.2014, 22:34  [ТС]     Basic для платформы Android - Basic4Android #24
Цитата Сообщение от Runkin Посмотреть сообщение
а как тогда сделать - если на разных версиях такие азы различаются
Да нет, это я так. В принципе ни каких различий быть не должно. На то он и таймер, чтобы синхронизировать работу на всех устройствах вне зависимости от быстроты процессора и устройства в целом. Видно где то в коде баг есть. надо искать, смотреть в дебагере. Подключи по мосту свой телефон, выставь значения вывод в Log и смотри, как они изменяются.
Runkin
55 / 55 / 3
Регистрация: 22.12.2011
Сообщений: 252
Записей в блоге: 2
26.04.2014, 00:34     Basic для платформы Android - Basic4Android #25
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
Global > Dim CalcTime as Long
 
sub btn_click
        Timer1.Initialize("Timer1",1000)
        Timer1.Enabled = True
    CalcTime = 0
end sub
 
Sub Timer1_Tick
    CalcTime = CalcTime + 60000
    timelbl1.Text = DateTime.Time(CalcTime)
End Sub
вот должен прибавлять к часам по минуте в секунду! в эмуляторе так и есть - но на телефоне, в 1й тик (3часа 1 мин 0 сек), 2й тик (4 часа, 2мин, 0 сек), 3й тик (4часа, 3 мин, 0 сек) и дальше уже нормально идёт процесс...

за тик + мин

Добавлено через 1 час 22 минуты
ещё вариант протестил:

Visual Basic
1
2
3
4
5
6
7
8
9
Sub btn2_Click
    StopTime = DateTime.now + 3600000 'Добавим часик!
    Timer1.Initialize("Timer1",1000)
    Timer1.Enabled = True
End Sub
 
Sub Timer1_Tick
    Label1.Text = DateTime.Time(StopTime-DateTime.now)
End Sub
тоже самое - в эмуляторе всё чётко! но на телефоне, вместо отсчёта на час, отчёт на 5 часов .. бред
Pro_grammer
Модератор
5858 / 2018 / 385
Регистрация: 24.04.2011
Сообщений: 3,427
Записей в блоге: 9
26.04.2014, 07:12  [ТС]     Basic для платформы Android - Basic4Android #26
Цитата Сообщение от Runkin Посмотреть сообщение
но на телефоне, вместо отсчёта на час, отчёт на 5 часов .. бред
Не бред. Сам сначала не врубился, а потом дошло.
Выполни просто этот код
Visual Basic
1
Msgbox("DateTime 0 =" & DateTime.Time(0),"Test")
По идее олжен быть 0, но у меня получается 4.0.0
Это связано с часовыми зонами. В реальном устройстве идет поправка даты на UTC (GMT)
В каждом устройстве можно найти и потом корректировать так
Visual Basic
1
2
Dim timezone As Long 
timezone = -DateTime.DateParse("01/01/1970")
Код с корректировкой будет выглядеть так
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
Sub Process_Globals
        Dim Timer1 As Timer 
End Sub
 
Sub Globals
    
Dim CalcTime As Long = 0
Private timelabel1 As Label
Private Button1 As Button
Dim timezone As Long 
timezone = -DateTime.DateParse("01/01/1970")
End Sub
 
Sub Activity_Create(FirstTime As Boolean)
    'Do not forget to load the layout file created with the visual designer. For example:
    Activity.LoadLayout("Layout1")
 
End Sub
 
Sub Activity_Resume
 
End Sub
 
Sub Activity_Pause (UserClosed As Boolean)
 
End Sub
 
Sub Timer1_Tick
    CalcTime = CalcTime + 60000
    timelabel1.Text = DateTime.Time( CalcTime - timezone)
End Sub
Sub Button1_Click
        Timer1.Initialize("Timer1",1000)
        Timer1.Enabled = True
    CalcTime = 0
End Sub
Runkin
55 / 55 / 3
Регистрация: 22.12.2011
Сообщений: 252
Записей в блоге: 2
26.04.2014, 22:22     Basic для платформы Android - Basic4Android #27
да всё связано с часовыми зонами! щас всё шикарно! Спасибо!
а ты приложения какого рода делаешь ? для себя или для продажи ?
Pro_grammer
Модератор
5858 / 2018 / 385
Регистрация: 24.04.2011
Сообщений: 3,427
Записей в блоге: 9
27.04.2014, 06:50  [ТС]     Basic для платформы Android - Basic4Android #28
Цитата Сообщение от Runkin Посмотреть сообщение
для себя или для продажи ?
Я пока только изучаю, вторую неделю как поставил B4A. В общем пока ещё вообще ни чего не написал, в основном разбираю готовые примеры.
Runkin
55 / 55 / 3
Регистрация: 22.12.2011
Сообщений: 252
Записей в блоге: 2
27.04.2014, 15:00     Basic для платформы Android - Basic4Android #29
беда с этими временными зонами!
Например:
Visual Basic
1
2
3
timezone = -DateTime.DateParse("01/01/1970")
Msgbox(DateTime.Time(0-timezone),"zero") 'Всё логично, получаем 00:00:00
Msgbox(DateTime.Time(0-timezone+3600000),"1h") 'Тут вместо 01:00:00, получаем 2:00:00
Добавлено через 3 минуты
timezone = 10800000
т.е вр. зона = 10800000 / 3600000 = 3 часа! всё норм. но
DateTime.Time(timezone) = "7:00:00"
?

Добавлено через 1 час 28 минут
ну вроде понял! Дело в ном, что часовой пояс по дефолту не +0, а +1

если сделать: timezone = (-DateTime.DateParse("01/01/1970"))+3600000

вроде норм

Добавлено через 2 минуты
или нет) переставил часовой пояс на эмуляторе на +4 москва, всё норм работает. +0 теперь тут на час отстаёт

Добавлено через 34 минуты
Видимо ответ всему
Visual Basic
1
DateTime.TimeZoneOffset
- разница в между +0 и твоим часовым поясом!

Visual Basic
1
DateTime.DateParse("01/01/1970")
- использовать не нужно

я сделал так:
Visual Basic
1
timezone = DateTime.TimeZoneOffset * 3600000
Pro_grammer
Модератор
5858 / 2018 / 385
Регистрация: 24.04.2011
Сообщений: 3,427
Записей в блоге: 9
27.04.2014, 18:14  [ТС]     Basic для платформы Android - Basic4Android #30
Цитата Сообщение от Runkin Посмотреть сообщение
я сделал так:
В принципе можно вообще отказаться от DateTime. Оно конечно проще пользоваться готовым, но все эти заморочки с зонами.
Счетчик можно и самому написать, на VB не раз писали всякие таймеры и секундомеры.
Runkin
55 / 55 / 3
Регистрация: 22.12.2011
Сообщений: 252
Записей в блоге: 2
27.04.2014, 19:00     Basic для платформы Android - Basic4Android #31
в принципе да, но я выбираю время например "3 часа"
прибавляю к текущему и получаю время когда должно произойти действие!
теперь даже если закрыть приложение и открыть заново, таймер будет верно идти!
вот мой пример:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
timezone = DateTime.TimeZoneOffset * 3600000
 
Sub btn1_Click
    StopTime = DateTime.Now + ([кол-во часов]* 3600000) 'StopTime as long
    Timer1.Initialize("Timer1",1000)
    Timer1.Enabled = True
End Sub
 
Sub Timer1_Tick
    Label1.Text = DateTime.Time(StopTime - DateTime.now - timezone)
End Sub
так вроде норм
Антихакер32
Заблокирован
29.04.2014, 06:19     Basic для платформы Android - Basic4Android #32
Я его пока не закачивал ...
но думаю освою я его за 5 минут
Pro_grammer
Модератор
5858 / 2018 / 385
Регистрация: 24.04.2011
Сообщений: 3,427
Записей в блоге: 9
29.04.2014, 08:43  [ТС]     Basic для платформы Android - Basic4Android #33
Цитата Сообщение от FelixMacintosh Посмотреть сообщение
но думаю освою я его за 5 минут
Не, не освоишь. Вчера ставил на Win7 x64 товарищу. Полная установка и настройка с "нуля" заняла около часа.
Значит времени для освоения понадобится 1 час + 5 минут. Хотя сильно зависит от скорости доступа к Интернет.

Да и есть принципиальные отличия от VB6 в некоторых моментах. Нет WIN32 API
aptos
13 / 13 / 2
Регистрация: 04.06.2013
Сообщений: 156
29.04.2014, 18:37     Basic для платформы Android - Basic4Android #34
С нетерпением ждемс графический редактор
Pro_grammer
Модератор
5858 / 2018 / 385
Регистрация: 24.04.2011
Сообщений: 3,427
Записей в блоге: 9
30.04.2014, 11:08  [ТС]     Basic для платформы Android - Basic4Android #35
Цитата Сообщение от aptos Посмотреть сообщение
ждемс графический редактор
Ну вот вам, пожалуйста

Создаем простую программу для рисования для Android – PaintDroid



Приступаем к очередному занятию. Для него нам понадобятся следующие инструменты и файлы

1. Файл иконки проекта. Напомню, что найти его можно бесплатно на www.iconfinder.com
2. Среда программирования Basic4Android, желательно версии не древнее 3.**
3. Библиотеки Core (есть по умолчанию) и Dialogs ( см. урок по созданию Текстового редактора)


Запускаем исполняемый файл Basic4android.exe любым удобным вам способом. Меняем в меню Project->Package name на Paint.Droid. Напомню, что каждое приложение в Android идентифицируется по уникальному имени пакета. Это строка, состоящая из нескольких слов, разделенными точками.
Срока должна содержать как минимум две части. Вы не сможете установить два разных приложения с одинаковым именем пакета на одно устройство. Вернее ваше устройство подумает, что это обновление и заменит старое на новое приложение.
Устанавливаем нашу иконку меню Project->Choose Icon и заменить имя и версию под спойлером Project Attributes
Visual Basic
1
2
3
#ApplicationLabel: B4A Example -> Меняем на PaintDroid
    #VersionCode: 1 -> это пока лучше не менять
    #VersionName: -> тут можно поставить версию 0.01
#ApplicationLabel – это имя будет названием нашей программы в списке программ, под иконкой программы, когда мы её установим в устройство (или эмулятор)
Мы должны сохранить наш проект в надежное место. Для этого выберите меню File - Save. Рекомендуется сохранять каждую отдельную программу в свою собственную папку.
Создайте новую папку: " PaintDroid ", откройте ее и сохраните программу как "PaintDroid“. В папке будут созданы ещё 2 основные папки Files, Objects с подпапками и файл PaintDroid.b4a
Запускаем свой эмулятор или подключаем своё реальное устройство при помощи B4A-Bridge или просто из меню Tools - Run AVD Manager.




Приступаем к проектированию дизайна нашей программы. Запускаем дизайнер из главного меню-> Designer

Тут сразу меняем Title Activity-> PaintDroid Эта надпись будет видна в работающем приложении.

В нашем приложении будет 1 элемент – Panel, добавим её из меню AddView->Panel и растянем на весь экран. Тут мы и будем рисовать. Рисовать удобно в планшетном варианте, для этого добавим New Variant -> 480х320, т.е планшетный вариант, в этом варианте измените положение панели в соответствии с экраном.
Закрепляем результат – сохраняем в файл с именем Layout1. Если с другим, то запомните – потом пригодится. Этот файл будет в папке File с именем Layout1.bal
Идем в редактор кода и раскоментируем эту строчку
Visual Basic
1
'Activity.LoadLayout("Layout1")
Если сохранили с другим именем, то вставляйте своё.
Visual Basic
1
2
3
4
5
Sub Activity_Create(FirstTime As Boolean)
    'Do not forget to load the layout file created with the visual designer. For example:
    Activity.LoadLayout("Layout1")
 
End Sub
В этом проекте у нас появляется новый элемент – модуль. Как и в случае с VB6, модули добавляются к проекту через меню. В данном случае это Project -> Add New Module-> Code Module. Один и тот же модуль можно использовать в различных своих проектах многократно, просто подключив его. Это обычный текстовый файл, имеющий расширение .bas
Создайте новый модуль с именем «SignatureCapture»
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
'Code module
Sub Process_Globals
    Dim px, py As Int
    Type SignatureData (Canvas As Canvas, Panel As Panel, SignatureColor As Int, SignatureWidth As Int)
    Dim color As Int
    End Sub
 
Sub Panel_Touch(SD As SignatureData, x As Int,y As Int, Action As Int)
    SD.SignatureColor = color
    If Action = 0 Then 'mouse down constant
        px = x
        py = y
    Else
        SD.Canvas.DrawLine(px, py, x, y, SD.SignatureColor, SD.SignatureWidth)
        SD.Panel.Invalidate
        px = x
        py = y
    End If
End Sub
Sub Clear(SD As SignatureData)
    SD.Canvas.DrawColor(Colors.White)
    SD.Panel.Invalidate
End Sub
Sub Save(SD As SignatureData, Dir As String, Name As String)
    Dim out As OutputStream
    out = File.OpenOutput(Dir, Name, False)
    SD.Canvas.Bitmap.WriteToStream(out, 100, "PNG")
    out.Close
End Sub
 
Sub SetColor
    Dim cd As ColorPickerDialog
    
    cd.RGB = Colors.Black
    ret = cd.Show("Цвет линии", "Применить", "", "Отмена", Null)    
    
    color = cd.RGB
End Sub
Этот модуль обеспечивает рисование при наступлении события Panel_Touch.
Проще говоря, когда вы будете пальцем водить по экрану, то он будет рисовать.

Переходим на основной код. Объявляем переменные и настраиваем форму диалога для загрузки и сохранения файлов. Я выбрал png файлы, но можно работать и с jpg!
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Sub Globals
    'These global variables will be redeclared each time the activity is created.
    'These variables can only be accessed from this module.
      Dim Panel1 As Panel
    Dim Canvas1 As Canvas
    Dim SD As SignatureData 'This object holds the data required for SignatureCapture
    ' For Paint
    Dim fdp As FileDialog
    fdp.FastScroll = True
    fdp.KeyboardPopUp = True
    fdp.FilePath = File.DirRootExternal ' also sets ChosenName to an emtpy string
    fdp.FileFilter = ".png" ' for example or ".jpg,.png" for multiple file types
    Dim ret As Int
End Sub
Что у нас есть? С панелью всё понятно. Далее Canvas1 – это как раз тот контекст, на котором мы и будем рисовать, а SD это объект, в котором будут хранится данные для рисования.
Код при запуске приложения
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Sub Activity_Create(FirstTime As Boolean)
    'Do not forget to load the layout file created with the visual designer. For example:
    Activity.LoadLayout("Layout1")
    If File.ExternalWritable = False Then
        Msgbox("Нет доступа к записи на карту памяти.", "PaintDroid")'"Cannot write on storage card."
        Activity.Finish
        Return
    End If
    Panel1.SetLayout(0%x, 0%y, 100%x, 100%y)' Растягиваем панель на весь экран
    Canvas1.Initialize(Panel1)
    SD.Initialize
    SD.Canvas = Canvas1
    SD.Panel = Panel1
    SD.SignatureColor = Colors.Black ' Начальный цвет черный
    SD.SignatureWidth = 3dip 'Толщина линии
    
    ' Menu 
    Activity.AddMenuItem("Цвет","mnuColor") ' Adds menu 
    Activity.AddMenuItem("Новый","mnuNew") ' Adds menu 
    Activity.AddMenuItem("Загрузить файл","mnuOpen") ' Adds menu 
    Activity.AddMenuItem("Сохранить файл","mnuSave") ' Adds menu 
    
End Sub
Проверяем, есть ли у устройства возможность записывать изображения:
Visual Basic
1
If File.ExternalWritable = False
Далее, вне зависимости от размеров экрана ( если помните, то у нас 480х320, для современных устройств это крайне мало!) растягиваем панель на весь экран:
Visual Basic
1
Panel1.SetLayout(0%x, 0%y, 100%x, 100%y)
Устанавливаем начальный цвет линии, которой будем рисовать и её толщину.
Visual Basic
1
2
 SD.SignatureColor = Colors.Black ' Начальный цвет черный
    SD.SignatureWidth = 3dip 'Толщина линии
Добавляем 4 пункта меню. Как делать меню с иконками было в прошлый раз, теперь без иконок ( но вы можете импровизировать!)
Процедура, которая обрабатывает нажатие на экан
Visual Basic
1
2
3
Sub Panel1_Touch (Action As Int, X As Float, Y As Float)
    SignatureCapture.Panel_Touch(SD, X, Y, Action)
End Sub
Заметьте, как вызывается функция из модуля – вначале пишем имя модуля и через точку имя вызываемой функции или процедуры.
Загрузка изображения из памяти устройства. Используем файловый диалог
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Sub ReadPaintExample
    Dim Bild As Bitmap 
    Dim DisRect As Rect
    
    ret = fdp.Show("Загрузить png", "", "Нет", "Да", Null)  
    If ret = -2 Then
     Bild.Initialize(File.DirRootExternal,fdp.ChosenName )
     DisRect.Initialize(0,0,Bild.Width,Bild.Height)
     SD.Canvas.DrawBitmap( Bild, Null, DisRect)
     Activity.Invalidate ' обновляем изображение на экране
        Else
    'ToastMessageShow("Загрузка отменена!", True)   ' на некоторых устройствах с сообщением бывают проблеммы!
    End If
    
    
End Sub
При нажатии на пункт меню “Загрузить файл” вызываем эту процедуру:
Visual Basic
1
2
3
Sub mnuOpen_Click
   ReadPaintExample
End Sub
Сохраняем созданный файл, используем тот же диалог выбора файла:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
Sub mnuSave_Click
    ret = fdp.Show("Сохранить как", "", "Нет", "Да", Null)  
    If ret = -2 Then
    SignatureCapture.Save(SD, File.DirRootExternal, fdp.ChosenName) 
    ToastMessageShow("Сохранено в : " & File.Combine(File.DirRootExternal, fdp.ChosenName), True)
        Else
    ToastMessageShow("Сохранение отменено!", True' на некоторых устройствах с сообщением бывают проблеммы!
 
    End If
 
End Sub
Очистка изображения и смена цвета линии. Эти процедуры описаны в модуле, из меню мы их только вызываем:
Visual Basic
1
2
3
4
5
6
7
Sub mnuNew_Click
  SignatureCapture.Clear(SD)
End Sub
 
Sub mnuColor_Click
  SignatureCapture.SetColor
End Sub
Для смены цвета линии для рисования мы применяем ColorPickerDialog ( см. код модуля)
Basic для платформы Android - Basic4Android

Готовый вид приложения
Basic для платформы Android - Basic4Android

Как можно развивать приложение?
Рисовалка у нас есть, а вот стиралки нет. Стирать можно так же как и рисовать, выбирая цвет фона. Чтобы не менять каждый раз Цвет кисти-> Цвет фона лучше вывести эту функцию отдельно.
Раз уже заговорили о цвете фона, то его тоже можно менять-выбирать в начале рисования.

Рисование примитивов – овал, квадрат, линия. К примеру, круг:
Visual Basic
1
SD.Canvas.DrawCircle(150dip,150dip,20dip,Colors.Red,False,10dip)
Смотрите свойства SD.Canvas. – после точки выплывает подсказка со всеми возможностями.
Меню может существенно увеличится, и потому управление процессом лучше организовать кнопками, которые расположить по нижнему краю панели.
Т.о. можно создать приложение отличной функциональности за короткий срок и очень компактное по размеру. Готовый apk всего около 135 КБ.
В приложении все материалы + готовый отдельный apk
Вложения
Тип файла: zip PaintDroid.zip (421.7 Кб, 74 просмотров)
Тип файла: zip PaintDroidAPK.zip (131.4 Кб, 54 просмотров)
Flamberg
32 / 32 / 3
Регистрация: 14.11.2012
Сообщений: 152
30.04.2014, 17:53     Basic для платформы Android - Basic4Android #36
А как сделать что бы экран не затемнялся пока работает приложение?
Pro_grammer
Модератор
5858 / 2018 / 385
Регистрация: 24.04.2011
Сообщений: 3,427
Записей в блоге: 9
30.04.2014, 18:53  [ТС]     Basic для платформы Android - Basic4Android #37
Цитата Сообщение от Flamberg Посмотреть сообщение
А как сделать что бы экран не затемнялся пока работает приложение?
Из библиотеки Phone объект PhoneWakeState предотвращает переход устройства в спящий режим.
Пользователь сможет выключить экран нажатием на кнопку питания.
Visual Basic
1
2
Dim PhoneAwake As PhoneWakeState
PhoneAwake.KeepAlive(True)
При использовании блокировок сна важно понимать, что необходимо правильно снимать эти блокировки, когда они не нужны. Иначе аккумулятор устройства быстро сядет: ведь устройство не сможет вернуться в состояние пониженного расхода электроэнергии.
Антихакер32
Заблокирован
30.04.2014, 19:14     Basic для платформы Android - Basic4Android #38
Как сложно !...
найти единомышленника,
и как просто ! его потерять, ..яушол
Igor-13
0 / 0 / 0
Регистрация: 06.05.2014
Сообщений: 8
09.05.2014, 17:09     Basic для платформы Android - Basic4Android #39
А существует литература по basic4android на русском?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.05.2014, 19:30     Basic для платформы Android - Basic4Android
Еще ссылки по теме:

Basic4Android Как перезагрузить устройство android

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Flamberg
32 / 32 / 3
Регистрация: 14.11.2012
Сообщений: 152
09.05.2014, 19:30     Basic для платформы Android - Basic4Android #40
на русском не знаю, но вот на http://www.basic4ppc.com/ и без перевода все ясно.
Yandex
Объявления
09.05.2014, 19:30     Basic для платформы Android - Basic4Android
Закрытая тема Создать тему
Опции темы

Текущее время: 20:24. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru