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

Basic4Android

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 213, средняя оценка - 4.95
Pro_grammer
Модератор
5934 / 2095 / 401
Регистрация: 24.04.2011
Сообщений: 3,569
Записей в блоге: 10
#1

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

19.04.2014, 19:43. Просмотров 28756. Ответов 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 реально торт.
Но торт скучно есть в одиночку. Буду рад, если найдутся заинтересованные люди, готовые поддержать разговор.
22
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.04.2014, 19:43
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Basic для платформы Android - Basic4Android (Basic4Android):

Литература по Basic4Android для новичков - Basic4Android
Добрый день,не подскажите ссылку на литературу Basic4Android для чайников или что-то подобное,давным давно vb5 увлекался,так простенькие...

Android SDK Manager не отображает платформы 2.3.3 (API 10), 2.3.1 (API 9). Как быть? - Программирование Android
Добрый день! Использую Android Studio под Windows 7. Из-за несовместимости с операционной системой Android SDK Manager не отображает...

Basic-authentication Https SSL Android, loopj library - Программирование Android
Никак не могу пройти аутентификацию в HTTPS с использованием loopj Asnctask Http library. Как можно это реализовать и что еще мне нужно...

Как подключить genymotion к basic4android? - Basic4Android
Подскажите, как подключить эмулятор genymotion к basic4android?

Выбор платформы разработки "1С Мобильная платформа" или "Android Studio" - Программирование Android
Всем, здравствуйте! Есть задача по разработке клиента для терминала сбора данных. Для использования его c WMS. После долгих раздумий было...

Выбор мощного android смартфона до 10 рублей, для тестирования проектов Android Studio, что посоветуете? - Программирование Android
Какую фирму посоветуете?

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Runkin
55 / 55 / 3
Регистрация: 22.12.2011
Сообщений: 252
Записей в блоге: 2
10.05.2014, 16:42 #46
Shortcut.zip
пример с ярлыком

Добавлено через 1 минуту
вы пробовали использовать TurnGPS Library
у меня не работает. должна включать GPS когда он выключен.
это вроде единственный вариант
2
Pro_grammer
Модератор
5934 / 2095 / 401
Регистрация: 24.04.2011
Сообщений: 3,569
Записей в блоге: 10
10.05.2014, 18:43  [ТС] #47
Цитата Сообщение от Igor-13 Посмотреть сообщение
можно где-то посмотреть?
Я из разных html пытался собрать всё в одну справку, вот что вышло

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

Переходы между страницами не заработали, но из домашней можно перейти на все по очереди.
3
Вложения
Тип файла: zip B4A tutorials.zip (2.19 Мб, 110 просмотров)
Flamberg
33 / 33 / 3
Регистрация: 14.11.2012
Сообщений: 152
11.05.2014, 08:39 #48
Разобрался с ColorDrawable. Как оказалось это не параметр, а объект-картинка. Он создается с параметрами Label которому присвоен, если он задан нескольким контролам, то создается с размерами меньшего и вставляется так во все. В результате больший Label он не закрывает полностью.
Поэтому Pro_grammer прав, лучше Color.RGB.

С GPS пока не разбирался
0
Runkin
55 / 55 / 3
Регистрация: 22.12.2011
Сообщений: 252
Записей в блоге: 2
12.05.2014, 17:38 #49
как задать ApplicationLabel на разных языках ?
Например приложение яндекс диск:
на русском: Диск
на английском: Yandex.Disk
0
Igor-13
0 / 0 / 0
Регистрация: 06.05.2014
Сообщений: 8
14.05.2014, 09:21 #50
Спасибо за информацию

Добавлено через 1 минуту
Цитата Сообщение от Pro_grammer Посмотреть сообщение
Я из разных html пытался собрать всё в одну справку, вот что вышло

Вложение 397088

Переходы между страницами не заработали, но из домашней можно перейти на все по очереди.
Спасибо за информацию
0
BoDun
0 / 0 / 0
Регистрация: 16.07.2012
Сообщений: 18
15.05.2014, 12:07 #51
Pro_grammer, а самих html не осталось?
Скачал посмотреть, а открывается дескать пустота.
То есть как будто ничего нет ни одной страницы даже, хотя размер говорит об обратном.
0
Runkin
55 / 55 / 3
Регистрация: 22.12.2011
Сообщений: 252
Записей в блоге: 2
15.05.2014, 12:32 #52
Цитата:
Сообщение от Runkin Посмотреть сообщение
как задать ApplicationLabel на разных языках ?
Например приложение яндекс диск:
на русском: Диск
на английском: Yandex.Disk
c этой темой разобрался:
в ресурсах добавляем строку: например app_name
далее:
Visual Basic
1
#ApplicationLabel: @string/app_name
1
Pro_grammer
Модератор
5934 / 2095 / 401
Регистрация: 24.04.2011
Сообщений: 3,569
Записей в блоге: 10
15.05.2014, 16:08  [ТС] #53
Цитата Сообщение от BoDun Посмотреть сообщение
а самих html не осталось?
Найди и скачай приложение htm2chm и декомпилируй этот chm. Получишь исходные Html.
1
Flamberg
33 / 33 / 3
Регистрация: 14.11.2012
Сообщений: 152
15.05.2014, 22:27 #54
еще пара интересных вопросов:
1. как сделать приложение неподвижным относительно ориентации экрана, всегда горизонтальное (планшетное).
2. как возводить в степень? Где-то видел, но когда понадобилось не нашел.
0
Pro_grammer
Модератор
5934 / 2095 / 401
Регистрация: 24.04.2011
Сообщений: 3,569
Записей в блоге: 10
15.05.2014, 22:40  [ТС] #55
Цитата Сообщение от Flamberg Посмотреть сообщение
всегда горизонтальное (планшетное).
в Project Attributes
#SupportedOrientations: landscape

Цитата Сообщение от Flamberg Посмотреть сообщение
как возводить в степень?
power (2,2) это как в Бейсике 2^2
2
BoDun
0 / 0 / 0
Регистрация: 16.07.2012
Сообщений: 18
20.05.2014, 12:57 #56
Pro_grammer, ещё полезные примеры будете выкладывать?
У вас хорошо получается объяснить, что к чему и куда.
Если у вас позволяет время и разобрались с виджетами, было бы интересно разобрать пример... на офф форуме нашёл тему, но туго с английским и не всё описано.
Да и тему поддержать, чтоб не угасала тут.
0
Pro_grammer
Модератор
5934 / 2095 / 401
Регистрация: 24.04.2011
Сообщений: 3,569
Записей в блоге: 10
20.05.2014, 16:20  [ТС] #57
Цитата Сообщение от BoDun Посмотреть сообщение
с виджетами,
Тема интересная. Попробую найти время!
0
Pro_grammer
Модератор
5934 / 2095 / 401
Регистрация: 24.04.2011
Сообщений: 3,569
Записей в блоге: 10
22.05.2014, 20:21  [ТС] #58
Android виджеты
Виджеты для андроид — это маленькие приложения, которые могут быть размещены на рабочем столе вашего Android-устрйства. Виджет работает в рамках "рабочего стола" нашего устройства и от этого имеет как плюсы так и минусы. Плюсы: можно настроить обновление средствами системы. Но минимальный интервал обновления при этом 30 мин., в целях экономии аккумулятора. Виджет всегда на виду: клиенту можно что-то сообщать не дожидаясь его действий.
Минусы: ограниченный набор компонентов, доступных для использования в интерфейсе.
Поддерживаются следующие виды:
- Button (default drawable)
- Label (ColorDrawable or GradientDrawable)
- Panel (ColorDrawable or GradientDrawable)
- ImageView
- ProgressBar (both modes)
Из этого следует, что на Panel или там Button вы не сможете фоном поставить изображение.
Ну, и, само собой, ограниченный размер "рабочей площади". В зависимости от устройства и его размеров будет зависеть и максимальный размер виджета. И он намного меньше полного экрана. Обычно виджеты размещаются в клетках, размер одной 80х100. Клеток может быть различное сочетание, такие как 2х3 или 3х4, горизонтальное расположение или вертикальное.
Написать виджет на Basic4Android так же просто, как и обычное приложение. Я придумал проект, в котором мы будем писать виджет, отображающий времена года. Для его осуществления нам понадобятся 4 изображения, соответствующие временам года, одно изображение на заставку в основной программе и иконка.
Название: ico.png
Просмотров: 312

Размер: 8.5 Кб
Основная программа делать ни чего не будет. При запуске покажет заставку с названием и картинкой потом сообщение вида MSGBOX, В котором мы предложим
Basic для платформы Android - Basic4Android
пользователю установить виджет на рабочий экран. После нажатия на OK основное приложение закроется. Во вкладке ВИДЖЕТЫ мы видим наш виджет, который устанавливаем стандартным способом
Basic для платформы Android - Basic4Android
В результате получим рабочий виджет на рабочем экране.
Basic для платформы Android - Basic4Android
Приступаем к написанию основной программы. Запускаем Basic4Android, видим стандартный код. Как обычно, сохраняем проект в отдельной папке, на это раз с именем seasons. Изменяем в меню Project->Pasckage Name на своё, помним, что это как минимум 2 слова, разделённые точкой, к примеру seasons.examples. Теперь в меню Project->Choose Icon выбираем свою иконку. С настройками закончили, приступаем к творчеству. Открываем дизайнер и добавляем все найденные изображения в кол-ве 5 штук. Способом, описанным в предыдущих уроках. На экран добавляем Panel, растягиваем на весь экран. В данный момент мы проектируем приложение, и тут нет ограничений, а по сему прямо на панель в качестве фона устанавливаем изображение заставки. В свойствах панели Drawable устанавливаем в BitmapDrawable и в качестве Image File выбираем этот, найденный на просторах Интернета рисунок, размером 320х480 ( весь экран)
Basic для платформы Android - Basic4Android
Изменяем имя Activity на наше seasons. Сохраняем панель с именем Layout1 и на этом проектирование основной программы считаем законченным. Приступаем к коду. Как я и сказал, делать наше приложение ни чего не будет, и код будет простой.
Изменяем имя приложения
#ApplicationLabel: Seasons

Код при активации
Visual Basic
1
2
3
4
5
6
Sub Activity_Create(FirstTime As Boolean)
    'Do not forget to load the layout file created with the visual designer. For example:
    Activity.LoadLayout("Layout1")
    Msgbox("Добавте на экран Seasons виджет.", "Seasons")
    Activity.Finish
End Sub
Basic для платформы Android - Basic4Android
С основным приложением закончили. Приступаем к программированию самого виджета. Добавляем из меню проекта Service module. Обращаю внимание, что это типовой модуль, в котором уже написан костяк кода. Даем ему имя, у меня SeasonsModule. Тут в модуле и будет весь остальной код виджета. Вызывам дизайнер и проектируем внешний вид нашего модуля. Если открылся проект приложения Layout1, то выберите File->New, это будет совсем другой файл!
Basic для платформы Android - Basic4Android
Добавляем панель, как основа. Её делаем прозрачной – Alpha = 0. На панель добавляем ImageView1 и Label1. ImageView1 будет содержать изображения времён года, а Label1 будет отображать текущую дату. Смотрите на рисунке настройки шрифта и цвета. Вы, естественно, можете всё сделать по своему. Сохраните этот файл с именем L1.
Можно приступать к программированию виджета. Обновления виджета строятся и посылаются с помощью RemoteViews, включающий контент, для отображения на домашней странице. Объявление в Process_Globals
Visual Basic
1
2
3
4
5
6
7
8
9
10
Sub Process_Globals
    'These global variables will be declared once when the application starts.
    'These variables can be accessed from all modules.
    Dim now, dt, month As String
    Dim rv As RemoteViews
    Dim imageFiles() As String
    imageFiles = Array As String("leto.png", "osen.png", _
        "vesna.png", "zima.png")
    Dim currentImage As Int
End Sub
Переменные now, dt, month для работы с датой.
Массив imageFiles = Array As String для смены изображений, содержит имена файлов изображений.
Стандартная процедура для виджета, которая всё настраивает:

Visual Basic
1
2
3
Sub Service_Create
rv = ConfigureHomeWidget("L1", "rv", 60, "Seasons Widget")
End Sub
Первый параметр это слой виджета, который мы создали в дизайнере. Второй это событие rv RemoteViews, третий параметр это время обновления и четвертый это имя нашего виджета. Это имя будет отображатся в списке виджетов для установки.
Следующие типовые процедуры, имена которых говорят сами за себя
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
Sub Service_Start (StartingIntent As Intent)
If rv.HandleWidgetEvents(StartingIntent) Then Return
End Sub
Sub rv_RequestUpdate
    GetSeasons
    rv.UpdateWidget
End Sub
 
Sub rv_Disabled
    StopService("")
End Sub
Процедуры старта, обновления и завершения работы виджета.
Основная процедура определения времени года
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
39
40
41
42
43
44
45
46
47
48
49
Sub GetSeasons
    DateTime.DateFormat = "dd:MM:yyyy"
    now = DateTime.now
    dt = DateTime.Date(now) 'день, месяц, год
    rv.SetText("Label1", dt)
    ' Выбор имени месяца и картинки
    Select Case DateTime.GetMonth(DateTime.now)
        Case 1
        month = "Января, зима в разгаре " 
        rv.SetImage("ImageView1", LoadBitmap(File.DirAssets, imageFiles(3)))
        Case 2
        month = "Февраля, ещё зима "
        rv.SetImage("ImageView1", LoadBitmap(File.DirAssets, imageFiles(3)))
        Case 3
        month = "Марта, уже весна"
        rv.SetImage("ImageView1", LoadBitmap(File.DirAssets, imageFiles(2)))
        Case 4
        month = "Апреля, весна в разгаре"
        rv.SetImage("ImageView1", LoadBitmap(File.DirAssets, imageFiles(2)))
        Case 5
        month = "Мая, пока ешё весна"
        rv.SetImage("ImageView1", LoadBitmap(File.DirAssets, imageFiles(2)))
        Case 6
        month = "Июня, уже лето"
        rv.SetImage("ImageView1", LoadBitmap(File.DirAssets, imageFiles(0)))
        Case 7
        month = "Июля, середина лета"
        rv.SetImage("ImageView1", LoadBitmap(File.DirAssets, imageFiles(0)))
        Case 8
        month = "Августа, пока ещё лето"
        rv.SetImage("ImageView1", LoadBitmap(File.DirAssets, imageFiles(0)))
        Case 9
        month = "Сентября, уже оснь"
        rv.SetImage("ImageView1", LoadBitmap(File.DirAssets, imageFiles(1)))
        Case 10
        month = "Октября, осень в разгаре"
        rv.SetImage("ImageView1", LoadBitmap(File.DirAssets, imageFiles(1)))
        Case 11
        month = "Ноября, всё ещё осень"
        rv.SetImage("ImageView1", LoadBitmap(File.DirAssets, imageFiles(1)))
        Case 12
        month = "Декабря, уже зима"
        rv.SetImage("ImageView1", LoadBitmap(File.DirAssets, imageFiles(3)))
    End Select
    
    rv.UpdateWidget
    
    
End Sub
В объяснениях не нуждается, обычный код.
Процедура, обрабатывающая взаимодействие с пользователем, а именно реагирует на клик по изображению. В результате выводит название месяца и день в сообщении:
Visual Basic
1
2
3
4
5
6
Sub ImageView1_Click
    
    ToastMessageShow("Сейчас " & DateTime.GetDayOfMonth(DateTime.now) & " " & month , True)
    GetSeasons
    rv.UpdateWidget
End Sub
Вот и весь код. Можно запускать на выполнение, и убедится в простоте программирования на Basic4Android.
Из граблей, которые явно обнаруживаются, можно отметить выбор размера виджета. Если виджет не умещается на экране в положенном ему месте, то его просто не видно в списке виджетов и соответственно не установить. Для этого делают несколько размеров виджетов, если они все максимальные по размеру для группы устройств, или один, но минимальный для самого маленького устройства ( как у нас).
Приятного программирования! Все материалы прилагаются ( из них можно почерпнуть изображения ) + готовый apk.
1
Вложения
Тип файла: zip seasons.zip (966.6 Кб, 73 просмотров)
fireday
306 / 136 / 5
Регистрация: 17.04.2013
Сообщений: 1,942
28.06.2014, 18:12 #59
Pro_grammer, спасибо большое за освещение b4a
Жаль в армию забирают, так бы сел за поедание такого торта
0
Pro_grammer
Модератор
5934 / 2095 / 401
Регистрация: 24.04.2011
Сообщений: 3,569
Записей в блоге: 10
28.06.2014, 21:00  [ТС] #60
Цитата Сообщение от fireday Посмотреть сообщение
Жаль в армию забирают
Это нормально. Жизнь не останавливается, просто набирает новых впечатлений, опять же знаний и здоровья на халяву. Да и год это вообще не срок, я к тому времени ещё пару - тройку уроков напишу. В частности про игрушки.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.06.2014, 21:00
Привет! Вот еще темы с ответами:

Посоветуйте книги, самоучители, видео для обучения программирование под мобильные платформы - Программирование Android
Имею навык и опыт программирования по паскалю и делфи, закончил 1 курс института и понял, что ко всему придется идти самому....

Какие горячие клавиши используются для Find Usages в Android Studio для мака - Программирование Android
Как настроить на маке Find usages в scope Projects and libraries в Android studio? В винде я делаю Ctrl Alt Shift F7 а как в маке?

Выбор книги или статей для создания приложений под Android (клиент для сервера) - Программирование Android
С какой книги посоветуете начать изучение (желательно сразу на 4 версии). Важно что бы была глава про то как парсить json с сервера...

Qt для Android - Программирование Android
подскажите можно ли на Qt писать для андройда?если нет,то почему?? ведь это кросплотформенная либа


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
28.06.2014, 21:00
Закрытая тема Создать тему
Опции темы

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