Sei sulla pagina 1di 29

Tabla de Contenidos i

B4A en Español
Desarrollo Rápido de App utilizando BASIC
Por Wyken Seagrave
Traducción de Javier Párraga González
Publicado por Penny Press, 176 Greendale Road, Coventry,
CV5 8AY, United Kingdom
sales@pennypress.co.uk
ISBN
9781871281453 (ebook)
9781719029940 (Libro)
9781871281460 (edición rústica)

Tabla de Contenido
Tabla de Contenido
Prólogo de Erel Uziel
Prólogo
Introducción
Para quien es este libro
Para el Principiante
Para el Profesional
Cómo está organizado este libro
Convenciones usadas en este libro
Código
Descripción de los Menús
Especificando Argumentos de Funciones
Acrónimos
Recursos
Actualizaciones gratuitas
Boletín Informativo
Quisiéramos conocer tu opinión
Sobre el Autor
Agradecimientos
Parte 1: Conceptos Básicos
1.1 Primeros pasos
Versiones
Versión de B4A
Versión de Android
Dos Versiones
Que se necesita para ejecutar B4A
Instalando la Versión de Evaluación
Descarga de la version de evaluación de B4A
Instalando y ejecutando la version de evaluación
Lo que se puede ver
Tu primera App
Cómo agregar tu primer comando
Depuración
Legado versus Depurador Rápido
Puntos de interrupción (Breakpoints)
Salvar el programa
B4A-Bridge
Instalar B4A-Bridge en tu dispositivo
Ejecutar B4A-Bridge en tu dispositivo
Tabla de Contenidos ii

Notas sobre la conexión inalámbrica


B4A-Bridge Código fuente
Conecta el IDE al dispositivo o al Emulador
Cambio de Conexión
Conectar vía [Herramientas > B4A-Bridge]
Barra de estado de B4A-Bridge
Modo de Compilación Remota
Diseñador B4A
Detener B4A-Bridge
Compilar tu nueva App
Compilación Remota
Aprobar la App en su dispositivo
Punto de interrupción (Breakpoint)
Ventana de Depuración
Evaluación emergente de Variables
Continuando con la ejecución
Eventos de Logs
Rotando el dispositivo
Más sobre la Depuración
Tu segunda App: Usando el Diseñador
Conceptos sobre View (Vistas) y Layout (Diseños)
Ejecutando el Diseñador
Conecte el Diseñador a su dispositivo.
Agregar un botón
Configurar su botón
Generar Miembros
Añadir el Código para el Botón
Agregar código al botón
Carga del Layout (Diseño)
Ejecuta tu App
Tu tercera App
Detener B4A-Bridge
Más sobre el Diseñador
1.2 Entorno de Desarrollo Integrado
Iconos
Selector de Iconos
Interfaz Selector de Icono
Usar el Selector de Icono en el área de código
Usar el Selector de Icono dentro del diseñador
Menú Archivo
Menú Editar
Diseñador
Menú Proyecto
Módulos
Opciones de Paquete (Package)
Opciones de Compilación
Menú Harramientas
Submenú opciones del IDE
Menú Depurar
Menú Ventanas
Menú Ayuda
Barra de Herramientas (Toolbar)
Pestañas de Módulos
Cerrando un Módulo
Menú Emergente en Pestaña del Módulo
Área de Código
Lista Desplegable de Subrutina (función)
Control de Zoom
Divisor del Editor de Código
Código
Tabla de Contenidos iii

Revisión Codificación de Color


Regiones
Encabezado del código
Comentar y Descomentar código
Sangría
Autocompletado
Autocompletado de subrutinas de eventos
Comentarios como Documentación
Completado de Bloques
Menú Contextual
Destacando las apariciones de palabras
Adecuación de la estructura del código
URLs que permiten Clic
Área del menu Ventanas
Pestañas de las Ventanas
Administrador de Librerías
Administrador de Archivos
Ventana de Módulos
Ventana Logs
Buscar todas las Referencias (F7)
Búsqueda Rápida
El Motor de Advertencias
Ignorando Advertencias
Las Advertencias
Archivo de Metadatos del IDE
1.3 Acoplamiento
Menús de Ventana
Menú del Módulo
Menú de Ventana
Flotante
Grupos de Pestañas
Grupo de Pestañas Horizontal
Grupo de Pestañas Vertical
Acoplar
Arrastrar Ventanas
Acoplar un Módulo
Acoplar Ventanas
Mover un Grupo de Pestañas
Acoplar Ventanas
Ocultar Automaticamente (Auto Hide)
Diseñador Visual
Restaurando todas las Ventanas
1.4 Actualizar a la version completa
Sobre las Versiones Completas
Versión Estándar de B4A
Versión Empresarial de B4A
Licencia de grupo de B4A
Licencias Académicas
Compra
Registrando B4A
Instalación de Java JDK y Android SDK
Comprobar si Java JDK ya está instalado
Instalar el Java JDK de 32 bit
Instalar el SDK de Android y una plataforma
Instalar y configurar B4A
Descargar e instalar B4A
Abrir B4A
Licencia
Tabla de Contenidos iv

Configurar Rutas
Javac.exe
Android.jar
Librerías Adicionales
Carpeta de Módulos Compartidos
Actualizando a una nueva versión
Parte 2: Creando su App
2.1 El Proyecto
Módulos
Módulo Main de Actividad principal
Servicio Starter
Atributos
Sección Atributos del Proyecto
#AdditionalRes: Location, Package (opcional)
#ApplicationLabel:
#BridgeLogger: True
#CanInstallToExternalStorage:
#CustomBuildAction: Step, Command, Arguments
#DebuggerDisableOptimizations: Value
#DebuggerForceFullDeployment:
#DebuggerForceStandardAssets:
#ExcludeClasses: Value List
#MultiDex: True
#SignKeyAlias:
#SignKeyFile:
#SignKeyPassword:
#SupportedOrientations: Value
#VersionCode: Value
#VersionName: Name
Atributos de compilación de Librería
Icono del Proyecto
Nombre del paquete
Nombre Único
Caracteres Permitidos
URL de Google Play
Precaución: el Nombre no se puede cambiar
El Manifest
Editor de Manifest
Evitar los caracteres de final de cadena
Comandos Manifest
minSdkVersion
android:targetSdkVersion
Comandos Condicionales del Manifest
#Region and #End Region
Macros del Editor de Manifest
Más información
2.2. Diseñando su App
Satisfacer Deseos y Necesidades
Versiones de Android
Popularidad de las versiones Android
La Pantalla de Android
Barra de Estado (Status Bar)
Barra de Navegación (Navigation Bar)
Notificaciones
Diseño de Apps paso a paso
Principios básicos de Diseño
Barra de Título (Title Bar)
Action Bar (o App Bar)
Menú
Tabla de Contenidos v

Vistas con Pestañas


Páginas Deslizantes
Navigation Drawer (Menú lateral deslizante)
Animando su App
Publicidad
Temas Android
Más Consejos
Administración de Configuraciones
Editición de Ajustes
Guardar y recuperar configuraciones
Pantallas y Layouts (Diseños)
El Diseñador
Múltiples actividades (Activities)
Retornando de una Actividad
Vistas superpuestas (Overlays)
Menú Superpuesto
Diseño Superpuesto (Layout)
Como detectar el tamaño de la pantalla
LayoutValues
Detectando la Orientación del Dispositivo
Orientación de Pantalla Permitida
Añadir vistas por código
Ejemplo
dips
DipToCurrent(Length as Int)
Porcentaje de una Actividad
¿El dispositivo tiene teclado?
¿App o Widget ?
Gestión de Permisos
Antes de Android 23
Permisos en Tiempo de Ejecución
2.3 Comunicación con el Usuario
Diálogos
Diálogos Asíncronos
Diálogos Modales
ToastMessageShow
Alarmas
Notificaciones
Diálogo de Progreso
Barra de Progreso
2.4 El Diseñador Visual
Diseños (Layouts)
Ventanas de Acoplamiento
Menú Archivo
Nuevo
Abrir
Salvar (Ctrl+S)
Guardar Como…
Eliminar Diseño
Menú Añadir Vista
Menú WYSIWYG del Diseñador
Conectar (F2)
Disconectar (Shift+F2)
Menú Herramientas
Generar Miembros
Cambiar Rejilla
Enviar a UI Cloud (F6)
Menú Ventanas
Ventana Propiedades
Ventana Variantes
Tabla de Contenidos vi

Ventana Archivos
Ventana de Código
Árbol de vistas
Reiniciar
El Diseñador Abstracto
Coincidir Variante Elegida
Controles de Vista
Menús de contexto
Selección de vistas
Código del Diseñador
Añadir vistas en código
2.5 Referencia de código del diseñador
En Segundo plano (Background)
Scripts del Diseñador y Código de Actividad
Ejecutando Código (Scripts)
Conceptos Clave
Pixel
Resolución
dpi : dots per inch (puntos por pulgada)
Tamaño de Pantalla
Dip
Tamaño del Texto
Pantalla Estándar
Escala
Estrategía de Acople y Relleno
Conceptos básicos de código del diseñador
Seleccionando Variantes
Lenguaje de Script
Variables
%x and %y
Propiedades dentro de Scripts
Advertencia: Configure las propiedades internas antes de las externas
Propiedades del Texto
Otras Propiedades
Métodos
Otras palabras clave
Métodos de Actividad
Activity.RerunDesignerScript (LayoutFile As String, Width As Int, Height As Int)
AutoScale: Diseños para diferentes tamaños de dispositivos
Como funciona AutoScale
Como ver el efecto del AutoScale
Cómo ver el efecto de AutoScale en el tamaño del texto
Cómo usar AutoScale
AutoScaleRate(rate)
AutoScaleAll
AutoScale(View)
Diferentes Diseños para Vertical y Horizontal
Estrategia de escalado
Edición de vistas en un programa
2.6 Compilación, Depuración y Pruebas
Compilación
Versión de Android
Configuración de Compilación
Definición de Configuración de Compilación
Lista de Configuración de Compilacion
Compilación Condicional
Modos de Compilación
Modo Depuración
Modo Release
Release (obfuscated)
Tabla de Contenidos vii

Compilación Condicional
Compilador de Línea de Comandos
Ejecutar desde archivos de lote (Batch Files)
Depuración
#ExcludeFromDebugger Attribute
Reiniciar (F11)
Depurador Rápido
Limitaciones del Depurador Rápido
Como funciona el Depurador Rápido
Edición de código utilizando el Depurador Rápido
Depuración Legado
Breakpoints (Puntos de Interrupción)
Limitaciones del Breakpoint
Control del Depurador
Ventana Depurar
Pila de LLamadas
Lista de Variables
Observar
Consulta Flotante
Registro (Logging)
Registro con B4A-Bridge en el modo de distribución (Release)
Compilando para Material Design
Tema Holo
Temas Material en el Diseñador WYSIWYG Designer
Probando tu aplicación
Conectando el Depurador al Dispositivo o al Emulador
Canales de comunicación para Depuración
Abrir el Canal
B4A-Bridge
Depuración USB
Conexión del dispositivo vía USB
Android Debug Bridge
Depuración con USB
El Emulador o el Administrador de Dispositivos Virtuales de Android (AVD)
Introducción
Como interactúa B4A con los dispositivos emulados
Utilizando el Android Virtual Device Manager
No hay pestañas disponibles
Android Virtual Devices (AVDs)
Creando un AVD
AVD Name (Requerido)
Device (Requerido)
Target (Requerido)
CPU / ABI (Requerido)
Keyboard (Teclado)
Skin (Requerido)
Front / Back Camera (Cámara Delantera / Trasera)
Memory Options (Opciones de Memoria)
Internal Storage (Almacenamiento Interno)
SD Card (Tarjeta SD)
Emulation Options (Opciones de emulación)
Creación de un Device Definition (Definición de Dispositivo)
Ejecución de Dispositivo Virtual y ajuste de escala para la Emulación de Tamaño Real
Sin Escalado
Escala a tamaño real
Interacción con su Dispositivo Virtual
Abreviaturas de teclado para PC
Abreviaturas de teclado para el Mac
Intercambio de archivos con el PC
Solucionar problemas de conexión
Tabla de Contenidos viii

2.7 Gráficos y Dibujos


Métodos de Dibujado
Configuración de fondos de Vistas de Actividad
Vistas Dibujables (Drawables)
Bitmaps (Mapa de bits)
Drawables (Dibujables)
Propiedad del fondo
ColorDrawable
GradientDrawable
BitmapDrawable
Código de ejemplo
StateListDrawable
NinePatchDrawable
Objeto Canvas (Lienzo)
Inicializando un Lienzo
Dibujando sobre un Lienzo
Importar un archivo Bitmap en el Lienzo
Copiar un Dibujable en un Lienzo
Haciendo que el lienzo se dibuje
Restricción del Área de Dibujo
Las funciones más communes del Lienzo
DrawBitmap (Bitmap1 As Bitmap, SrcRect As Rect, DestRect As Rect)
DrawBitmapRotated (Bitmap1 As Bitmap, SrcRect As Rect, DestRect As Rect, Degrees As Float)
DrawCircle (x As Float, y As Float, Radius As Float, Color As Int, Filled As Boolean, StrokeWidth As
Float)
DrawColor (Color As Int)
DrawLine (x1 As Float, y1 As Float, x2 As Float, y2 As Float, Color As Int, StrokeWidth As Float)
DrawRect (Rect1 As Rect, Color As Int, Filled As Boolean, StrokeWidth As Float)
DrawRectRotated (Rect1 As Rect, Color As Int, Filled As Boolean, StrokeWidth As Float, Degrees As
Float)
DrawText (Text As String, x As Float, y As Float, Typeface1 As Typeface, TextSize As Float, Color As
Int, Align1 As Align)
DrawTextRotated (Text As String, x As Float, y As Float, Typeface1 As Typeface, TextSize As Float,
Color As Int, Align1 As Align, Degree As Float)
Programa de Ejemplo
Ejemplos más complejos
Animación de Mapas de bits
Diagramas / Gráficas
Framework de Gráficas
Errores de falta de Memoria
2.8 Bases de Datos
Almacenamiento de Datos
Fundamentos de Base de Datos
Base de Datos (Database)
Tabla
Registro
Campo
Clave Primaria
Tipo de Campo
Datos Relacionales
Archivos de Bases de Datos
Librería KeyValueStore2
Cifrado de Bases de Datos
Mostrando tablas al usuario
Administración de Bases de Datos
Herramientas del SGBD
SQLiteBrowser
SQLiteSpy
Apps SGBD
El Objeto SQL
Tabla de Contenidos ix

Declarar el Onjeto SQL


Inicializar el Objeto SQL
DBUtils
Fundamentos de DBUtils
Pasos Preliminares SQL
Tipos de Campos DBUtils
Funciones DBUtils
Programa DBUtils de ejemplo
SQLite
SQL
SQLite
Mas Información sobre SQLite
Ejemplo de Programa con SQLite
Tipado Dinámico
SQLiteExceptions
Librería SQL
Comandos SQLite
Creación de Base de Datos
Creación de Tablas
Eliminar una Table
Añadiendo registros
Actualización de registros
Consulta de datos
Borrando datos
Renombrar una tabla
Añadiendo un campo
Usando SQLite para convertir Ticks a Cadenas de Caracteres
Implementando relaciones en una Base de Datos
2.9 Módulos
Procesos
¿Cuándo mata un proceso Android?
Crear o Añadir Módulos
Módulos Compartidos
Atributos de Módulo
#AdditionalJar
#ExcludeFromLibrary
Visibilidad y Vida Útil de las Variables y Subs
Resumen
Variables Públicas
Variables Privadas
Variables dentro de Subs
Visibilidad de las Subrutinas
Variables Globales en Módulo Actividad
Class_Globals
Variables Locales en Subs
Documentación de Módulos
Documentando una Clase
Documentando un Módulo de Servicio, Actividad o Código
Sub Process_Globals
Módulos que Contienen Process_Globals
Variables Process_Globals
Inicialización de Process_Globals
Duración de las variables Process_Globals
Process_Globals en el Servicio Starter
Restricción de Variables en Process_Globals
Rotar el Dispositivo
Como accede a Variables Process_Globals
Módulo de Actividad (Activity)
El Concepto de Actividad
Módulo Actividad
Tabla de Contenidos x

Atributos de la Actividad
Variables dentro de una Actividad
Ciclo de Vida de una Actividad
Eventos de la Actividad
Sub Activity_Create (FirstTime As Boolean)
Sub Activity_Resume
Sub Activity_Pause (UserClosed As Boolean)
StartActivity (Activity As Object)
Activity.Finish vs ExitApplication
Crear un Menú
Actividades vs Formularios Windows
Múltiples Módulos de Actividad
Módulo de Clase
¿Qué es una Clase?
Beneficios de las Clases
Ejemplo
Sub Class_Globals
Variables Públicas vs Privadas
Subs Públicos vs Privados
Clases vs Tipos
Clases vs Módulos de Código
Añadir un Módulo de Clase
Estructuras de Clases
Polimorfismo
Auto-Referencia
Clases y el Objeto Actividad
Actividades que extienden las clases
Limitaciones de las Clases
Módulo de Código
Módulo de Servicio
Por qué usar un servicio
Como interactúa el usuario con un Servicio
Alternativa a una Actividad
El Servicio Starter
Los Servicios vistos por Android
Como iniciar un Servicio
Iniciar un servicio mientras la App está en segundo plano
Cuándo Terminan los Servicios
Wake Lock (bloqueo de activación)
Código de Servicio
Atributos de los Servicios
SubRoutines (Subrutinas)
Cuando Usar un Servicio
Notificaciones
Accediendo a otros módulos
Ejemplos de Proyectos Usando Servicios
2.10 Publicando y Monetizando su App
Ayuda al Usuario
Branding and Marketing (estrategia de marca y comercialización)
Configurando los Parámetros del Proyecto
Nombre del Paquete
Atributos del Proyecto
Configuración de Iconos
Icono de Google Play Store
Icono de Inicio
[Proyecto > Elegir Icono]
Iconos Action Bar
Crear Iconos
Fuentes de Iconos
Implementando MipMap
Tabla de Contenidos xi

Recomendaciones para iconos de Notificación


Medidas de los Iconos
Instalación de Iconos
Generando su APK
Archivo APK
Claves y Certificados
Firma
Certificados de Depuración
La Firma para Distribución
Creación o Carga de una Clave Privada
El Depósito de Claves (KeyStore)
Compilando el APK
Huella digital del certificado SHA1
Monetizando su App
Formas de Monetizar su App
Librerías de soporte a la Publicidad
AdMob
AdBuddiz
AdiQuity
TapForTap
AppLovin
Vender su App
Facturación In-App
Licencias
Registrarse como Desarrollador en Google Play
Como registrarse como un Desarrollador en Google Play
Cuenta de Vendedor
Prepare la página de inicio de su App en Google Play
Apoyo al Usuario
Consola de desarrollador de Google Play
Subir su App a Google Play
Distribuir Apps por otros canales
Preparación del dispositivo del usuario
Amazon Appstore
Por Correo Electrónico
Descarga desde un sitio web
Otros publicadores de Apps
2.11 Obtener más ayuda
Anywhere Software
Foro
Sala de Chat
Video Tutoriales
Tutoriales en Línea
Facebook
Twitter
Linked In
Documentación en Línea
Guías en PDF
Explorador de Librerías
B4a Object Browser
B4AHelp
Parte 3: Lenguaje y Objetos básicos de B4A
3.1 El Lenguaje de B4A
BASIC
B4A
Reglas del Léxico
Separador de declaraciones
Comentarios
Dividir líneas muy largas
Tabla de Contenidos xii

Variables
Constantes
Tipos
Tipos Primitivos
Literales Hexadecimales
Tipos No-Primitivos
Tipos Básicos
Pasar por Referencia los tipos No-Primitivos
Conversión de Tipos
Rank
Creando sus propios Tipos
Objectos
Inicializació de Objetos
Declaración de Variables
Sentencia Dim
No Opción Explicita
Avisos del editor sobre variables no declaradas
Asignación de Valores
Verificación de Tipo
Uso de Variables no asignadas
Pasar por Valor
Pasar por Referencia
Nombres de Variables
Notación Hungará
Arrays (Matrices)
Dimensiones
Declarando un Array
Tipo por Defecto
No se puede cambiar las dimensiones
Guardando y Recuperando Datos
Rellenar un array utilizando la palabra clave Array
Tamaño de un Array
Arrays de Objetos
Las Dimensiones del Array son Fijas
Lists (Listas)
Maps (Mapas)
Type. Definir tipos de variables
Declaración de Tipos
Tipos Recursivos
Casting
Visibilidad de las Variables
Expresiones y Operadores
Expresiones matemáticas
Operadores Relacionales
Operadores Lógicos
Expresiones Regulares
Sentencias Condicionales
If – Then
If-Then-End If
If-Then-Else-End If
Select – Case
Estructuras de Bucle
For – Next
For-Each
Do-While
Do-Until
Salir de un Bucle
Diferencias entre B4A y Visual Basic
Subs
Declarando un Sub
Tabla de Contenidos xiii

Nombre de un Sub
LLamar a un Sub
Parámetros
Valor de retorno
Creando Tooltips para Subs
Subs Reanudables
Se pueden pausar
Contiene Sleep o Wait For
El Sub reanudable está en pausa
Tipo ResumableSub
Sleep
Wait For
Eventos
Eventos básicos de los Objetos
Respuesta a un Evento
Ejemplo
Gestor de Eventos Compartido
View Events
Eventos de vista más comunes
Control de Errores
Errores en Tiempo de Ejecución
Excepciones
Excepciones en tiempo de ejecución no capturadas
Try-Catch
Cuando utilizer un Try-Catch
Manipulación de cadenas
Cadenas Mutables
Las funciones de Cadenas
Formateado de números
Palabras Clave
Abs (Number As Double) As Double
ACos (Value As Double) As Double
ACosD (Value As Double) As Double
Array
Asc (Char As Char) As Int
ASin (Value As Double) As Double
ASinD (Value As Double) As Double
ATan (Value As Double) As Double
ATan2 (Y As Double, X As Double) As Double
ATan2D (Y As Double, X As Double) As Double
ATanD (Value As Double) As Double
BytesToString (Data() As Byte, StartOffset As Int, Length As Int, CharSet As String) As String
CallSub (Component As Object, Sub As String) As String
CallSub2 (Component As Object, Sub As String, Argument As Object) As String
CallSub3 (Component As Object, Sub As String, Argument1 As Object, Argument2 As Object) As
String
CallSubDelayed (Component As Object, Sub As String)
CallSubDelayed2 (Component As Object, Sub As String, Argument As Object)
CallSubDelayed3 (Component As Object, Sub As String, Argument1 As Object, Argument2 As
Object)
CancelScheduledService (Service As Object)
Catch
cE As Double
Ceil (Number As Double) As Double
Tabla de Contenidos xiv

CharsToString (Chars() As Char, StartOffset As Int, Length As Int) As String


Chr (UnicodeValue As Int) As Char
ConfigureHomeWidget (LayoutFile As String, EventName As String, UpdateIntervalMinutes As Int,
WidgetName As String) As RemoteViews
Continue
Cos (Radians As Double) As Double
CosD (Degrees As Double) As Double
cPI As Double
CreateMap() As Map
CRLF As String
Density As Float
Dim
DipToCurrent (Length As Int) As Int
DoEvents
Exit
ExitApplication
False As Boolean
File As File
Floor (Number As Double) As Double
For
For Each
GetDeviceLayoutValues As LayoutValues
GetType (object As Object) As String
If
InputList (Items As List, Title As String, CheckedItem As Int) As Int
InputListAsync (Items As List, Title As CharSequence, CheckedItem As Int, Cancelable As Boolean)
As Object
InputMap (Items As Map, Title As String)
InputMapAsync (Items As Map, Title As CharSequence, Cancelable As Boolean) As Object
InputMultiList (Items As List, Title As String) As List
Is
IsBackgroundTaskRunning (ContainerObject As Object, TaskId As Int) As Boolean
IsDevTool (ToolName As String) As Boolean
IsNumber (Text As String) As Boolean
IsPaused (Component As Object) As Boolean
LastException As Exception
LoadBitmap (Dir As String, FileName As String) As Bitmap
LoadBitmapResize (Dir As String, FileName As String, Width As Int, Height As Int, KeepAspectRatio
As Boolean) As Bitmap
LoadBitmapSample (Dir As String, FileName As String, MaxWidth As Int, MaxHeight As Int) As
Bitmap
Log (Message As String)
Logarithm (Number As Double, Base As Double) As Double
LogColor (Message As String, Color As int) As void
Max (Number1 As Double, Number2 As Double) As Double
Me As Object
Min (Number1 As Double, Number2 As Double) As Double
Msgbox (Message As CharSequence, Title As CharSequence)
Tabla de Contenidos xv

Msgbox2 (Message As CharSequence, Title As CharSequence, Positive As String, Cancel As String,


Negative As String, Icon As Bitmap) As Int
MsgboxAsync (Message As CharSequence, Title As CharSequence, Positive As String)
Msgbox2Async (Message As CharSequence, Title As CharSequence, Positive As String, Cancel As
String, Negative As String, Icon As Bitmap, Cancelable As Boolean) As Object
Not (Value As Boolean) As Boolean
Null As Object
NumberFormat (Number As Double, MinimumIntegers As Int, MaximumFractions As Int) As String
NumberFormat2 (Number As Double, MinimumIntegers As Int, MaximumFractions As Int,
MinimumFractions As Int, GroupingUsed As Boolean) As String
PerXToCurrent (Percentage As Float) As Int
PerYToCurrent (Percentage As Float) As Int
Power (Base As Double, Exponent As Double) As Double
ProgressDialogHide
ProgressDialogShow (Text As String)
ProgressDialogShow2 (Text As String, Cancelable As Boolean)
QUOTE As String
Regex As Regex
Regex Options
Regex Methods
Return [value]
Rnd (Min As Int, Max As Int) As Int
RndSeed (Seed As Long)
Round (Number As Double) As Long
Round2 (Number As Double, DecimalPlaces As Int) As Double
Select
Sender As Object
Sin (Radians As Double) As Double
SinD (Degrees As Double) As Double
Sleep (Milliseconds As int) As void
Sqrt (Value As Double) As Double
StartActivity (Activity As Object)
StartService (Service As Object)
StartServiceAt (Service As Object, Time As Long, DuringSleep As Boolean)
StartServiceAtExact (Service As Object, Time As Long, DuringSleep As Boolean)
StopService (Service As Object)
Sub
SubExists (Object As Object, Sub As String) As Boolean
TAB As String
Tan (Radians As Double) As Double
TanD (Degrees As Double) As Double
ToastMessageShow (Message As String, LongDuration As Boolean)
True As Boolean
Try
Type
Until
Wait For [(Sender)] <Event Signature>
While
3.2 VB6 versus B4A
Tabla de Contenidos xvi

Controless vs. Vistas


Dim
ReDim
Operaciones Boleanas
Not
Uso de números enteros como booleanos
Global Const
Estructuras de repetición
For…Next
Loops, If-Then, Select Case
Exit
ElseIf/EndIf
Colores
Subroutinas
Declaración de Sub
LLamando una Sub
Funciones
Exit Sub
DoEvents
Format
InputBox
Bucle
MsgBox
Números aleatorios
Rnd
RndSeed
Randomize
Round
Val()
SetFocus
Divide por Zero
Shell
Timer
TabIndex
Ajuste de Transparencia de Label
Constantes
String “Members”
Left$ y Right$
Len
Replace
Case
Trim
Instr
Intercepción de errores
VB6
B4A
“Immediate Window” vs. Pestaña “Logs”
3.3 Objetos básicos
Lista de Objetos básicos
General
Constants
Drawing Objects
File Objects
Views
Actividad
Vistas dentro de una Actividad
Eventos de Actividad
ActionBarHomeClick
Click
Eventos KeyPress y KeyUp
Tabla de Contenidos xvii

LongClick
PermissionResult (Permission As String, Result As Boolean)
Touch (Action As Int, X As Float, Y As Float)
Miembros de Activity
ACTION_DOWN As Int
ACTION_MOVE As Int
ACTION_UP As Int
AddMenuItem (Title As String, EventName As String)
AddMenuItem2 (Title As String, EventName As String, Bitmap1 As Bitmap)
AddMenuItem3 (Title As String, EventName As String, Bitmap1 As Bitmap, AddToActionBar As
Boolean)
AddView (View1 As View, Left As Int, Top As Int, Width As Int, Height As Int)
Background As Drawable
CloseMenu
Color As Int [write only]
DisableAccessibility (Disable As Boolean)
Finish
GetAllViewsRecursive As IterableList
GetStartingIntent As Intent
GetView (Index As Int) As View
Height As Int
Initialize (EventName As String)
Invalidate
Invalidate2 (Rect1 As Rect)
Invalidate3 (Left As Int, Top As Int, Right As Int, Bottom As Int)
IsInitialized As Boolean
Left As Int
LoadLayout (Layout As String) As LayoutValues
NumberOfViews As Int [read only]
OpenMenu
RemoveAllViews
RemoveViewAt (Index As Int)
RequestFocus As Boolean
RerunDesignerScript (Layout As String, Width As Int, Height As Int)
SendToBack
SetActivityResult (Result As Int, Data As Intent)
SetBackgroundImage (Bitmap1 As Bitmap) As BitmapDrawable
SetLayout (Left As Int, Top As Int, Width As Int, Height As Int)
Tag As Object
Title As CharSequence
TitleColor As Int
Top As Int
Width As Int
Application
Miembros de Application
Icon As Bitmap
LabelName As String
PackageName As String
VersionCode As Int
Tabla de Contenidos xviii

VersionName As String
Bit
Operaciones de bits
Miembros:
And (N1 As Int, N2 As Int) As Int
ArrayCopy ( SrcArray As Object, SrcOffset As Int, DestArray As Object, DestOffset As Int, Count As
Int ) As Void
InputStreamToBytes (In As Inputstream) As Byte()
Not (N As Int) As Int
Or (N1 As Int, N2 As Int) As Int
ParseInt (Value As String, Radix As Int) As Int
ShiftLeft (N As Int, Shift As Int) As Int
ShiftRight (N As Int, Shift As Int) As Int
ToBinaryString (N As Int) As String
ToHexString (N As Int) As String
ToOctalString (N As Int) As String
UnsignedShiftRight (N As Int, Shift As Int) As Int
Xor (N1 As Int, N2 As Int) As Int
Constantes
Colors
DialogResponse
Gravity
KeyCodes
Typeface
CSBuilder
CharSequence
Estilo con CSBuilder
PopAll es muy recomendable
Encadenamiento de Métodos CSBuilder
Uso de un objeto CSBuilder
Miembros
Alignment ( Alignment As android.text.Layout.Alignment ) As CSBuilder
Append ( Text As java.lang.CharSequence ) As CSBuilder
BackgroundColor ( Color As int ) As CSBuilder
Bold As CSBuilder
Clickable ( EventName As String, Tag As Object ) As CSBuilder
Color ( Color As int ) As anywheresoftware.b4a.objects.CSBuilder
EnableClickEvents ( Label As android.widget.TextView ) As void
Image ( Bitmap As Bitmap, Width As Int, Height As Int, Baseline As Boolean ) As CSBuilder
Initialize As CSBuilder
IsInitialized As Boolean
Length As Int [read only]
Pop As CSBuilder
PopAll As CSBuilder
RelativeSize ( Proportion As float ) As CSBuilder
ScaleX ( Proportion As float ) As CSBuilder
Size ( Size As int ) As CSBuilder
Strikethrough As CSBuilder
ToString As java.lang.String
Typeface ( Typeface As android.graphics.Typeface ) As CSBuilder
Underline As CSBuilder
Tabla de Contenidos xix

VerticalAlign ( Shift As int ) As CSBuilder


DateTime
Miembros:
Add (Ticks As Long, Years As Int, Months As Int, Days As Int) As Long
Date (Ticks As Long) As String
DateFormat As String
DateParse (Date As String) As Long
DateTimeParse (Date As String, Time As String) As Long
DeviceDefaultDateFormat As String [read only]
DeviceDefaultTimeFormat As String [read only]
GetDayOfMonth (Ticks As Long) As Int
GetDayOfWeek (Ticks As Long) As Int
GetDayOfYear (Ticks As Long) As Int
GetHour (Ticks As Long) As Int
GetMinute (Ticks As Long) As Int
GetMonth (Ticks As Long) As Int
GetSecond (Ticks As Long) As Int
GetTimeZoneOffsetAt (Date As Long) As Double
GetYear (Ticks As Long) As Int
ListenToExternalTimeChanges
Now As Long [read only]
SetTimeZone (OffsetHours As Double)
TicksPerDay As Long
TicksPerHour As Long
TicksPerMinute As Long
TicksPerSecond As Long
Time (Ticks As Long) As String
TimeFormat As String
TimeParse (Time As String) As Long
TimeZoneOffset As Double [read only]
Objetos para dibujar
Bitmap
BitmapDrawable
Canvas
ColorDrawable
GradientDrawable
Path
Rect
StateListDrawable
Exception
Miembros:
IsInitialized As Boolean
Message As String [solo lectura]
Objeto File
Nombre de Archivos
Añadiendo Archivos a su Proyecto
Ubicaciones de Carpetas en el Dispositivo
Codificación de Texto
File
InputStream
OutputStream
TextReader
Tabla de Contenidos xx

TextWriter
Intent
Miembros:
Action As String
ACTION_APPWIDGET_UPDATE As String
ACTION_CALL As String
ACTION_EDIT As String
ACTION_MAIN As String
ACTION_PICK As String
ACTION_SEND As String
ACTION_VIEW As String
AddCategory (Category As String)
ExtrasToString As String
Flags As Int
GetData As String
GetExtra (Key As String) As Object
HasExtra (Key As String) As Boolean
Initialize (Action As String, URI As String)
Initialize2 (URI As String, Flags As Int)
IsInitialized As Boolean
PutExtra (Name As String, Value As Object)
SetComponent (Component As String)
SetType (Type As String)
WrapAsIntentChooser (Title As String)
LayoutValues
Miembros:
ApproximateScreenSize As Double [read only]
Height As Int
Scale As Float
toString As String
Width As Int
List
Como usar una Lista
Miembros:
Map
Como usar un Map
Miembros:
MediaPlayer
Evento: Complete
Miembros:
Duration As Int [read only]
Initialize
Initialize2 (EventName As String)
IsInitialzied As Boolean
IsPlaying As Boolean
Load (Dir As String, FileName As String)
Looping As Boolean
Pause
Play
Position As Int
Release
Tabla de Contenidos xxi

SetVolume (Right As Float, Left As Float)


Stop
Notificación
Permisos:
Miembros:
AutoCancel As Boolean [write only]
Cancel (Id As Int)
Icon As String [write only]
Initialize
Initialize2 (ImportanceLevel As Int)
Insistent As Boolean [write only]
IsInitialized As Boolean
Light As Boolean [write only]
Notify (Id As Int)
Number As Int
OnGoingEvent As Boolean [write only]
SetInfo (Title As String, Body As String, Activity As Object)
SetInfo2 (Title As String, Body As String, Tag As String, Activity As Object)
Sound As Boolean [write only]
Vibrate As Boolean [write only]
Regex
Regex As Regex
Más sobre Regex
Opciones
Miembros Regex:
CASE_INSENSITIVE
IsMatch (Pattern As String, Text As String) As Boolean
IsMatch2 (Pattern As String, Options As Int, Text As String) As Boolean
Matcher (Pattern As String, Text As String) As Matcher
Matcher2 (Pattern As String, Options As Int, Text As String) As Matcher
MULTILINE
Replace (Pattern As String, Text As String, Template As String) As String()
Replace2 (Pattern As String, Options As Int, Text As String, Template As String) As String()
Split (Pattern As String, Text As String) As String()
Split2
Objeto Matcher
Métodos de comparación:
RemoteViews
Eventos:
Miembros:
HandleWidgetEvents (StartingIntent As Intent) As Boolean
SetImage (ImageViewName As String, Image As Bitmap)
SetProgress (ProgressBarName As String, Progress As Int)
SetText (ViewName As String, Text As String)
SetTextColor (ViewName As String, Color As Int)
SetTextSize (ViewName As String, Size As Float)
SetVisible (ViewName As String, Visible As Boolean)
UpdateWidget
Servicio
Miembros:
StartForeground (Id As Int, Notification1 As Notification)
Tabla de Contenidos xxii

StopForeground (Id As Int)


Cadenas
Cadenas Inmutables
Cadenas Mutables
Formateado de números
Smart Strings
Miembros:
CharAt (Index As Int) As Char
CompareTo (Other As String) As Int
Contains (SearchFor As String) As Boolean
EndsWith (Suffix As String) As Boolean
EqualsIgnoreCase (other As String) As Boolean
GetBytes (Charset As String) As Byte()
IndexOf (SearchFor As String) As Int
IndexOf2 (SearchFor As String, Index As Int) As Int
LastIndexOf (SearchFor As String) As Int
LastIndexOf2 (SearchFor As String, Index As Int) As Int
Length As Int
Replace (Target As String, Replacement As String) As String
StartsWith (Prefix As String) As Boolean
SubString (BeginIndex As Int) As String
SubString2 (BeginIndex As Int, EndIndex As Int) As String
ToLowerCase As String
ToUpperCase As String
Trim As String
StringBuilder
Miembros:
Append (Text As String) As StringBuilder
Initialize
Insert (Offset As Int, Text As String) As StringBuilder
IsInitialized As Boolean
Length As Int [read only]
Remove (StartOffset As Int, EndOffset As Int) As StringBuilder
ToString As String
Timer
Event: Tick
Ejemplo:
Miembros:
Enabled As Boolean
Initialize (EventName As String, Interval As Long)
Interval As Long
IsInitialized As Boolean
Vistas (Views)
AutoCompleteEditText
Button
CheckBox
CustomView
EditText
HorizontalScrollView
ImageView
Label
ListView
Tabla de Contenidos xxiii

Panel
ProgressBar
RadioButton
ScrollView
SeekBar
Spinner
TabHost
ToggleButton
View
WebView
3.4 Código en Línea
Devolviendo datos a B4A
Parte 4: Librerías
4.1 Librerías
Introducción
¿Qué es una librería?
Tipos de Librerías
Librería Principal
Librerías Estándar
Librerías Oficiales Adicionales
Librerías de Usuario Adicionales
Carpeta de librerías adicionales
Como indicar al IDE dónde se encuentran las librerías adicionales
Mensaje de error "¿Falta una referencia de librería?"
Actualización de las Librerías Internas
Referenciando Librerías
Aviso sobre las Librerías no Utilizadas
Uso de Librerías
Actualización de Librerías Adicionales
Uso del código en línea para acceder a las librerías
Creación de Librerías
Beneficios de la creación de Librerías
Preparación de su Librería
Excluir la Actividad Main
Atributos Específicos de Librería
Atributos del Proyecto
Atributos del Módulo
Atributos de Clases
Como compilar una Librería
Salida
Librerías de widgets sin pantalla de inicio
Como publicar su librería
4.2 Librerías Estándar incluidas en la Versión Completa
Introducción
Lista de Librerías Estándar
Librería de Accesibilidad
Lista de tipos:
Accesibilidad
Miembros:
GetUserFontScale As Float
SetContentDescription (View1 As View, Content As CharSequence)
SetNextFocusDown (ThisView As View, NextView As View)
SetNextFocusLeft (ThisView As View, NextView As View)
SetNextFocusRight (ThisView As View, NextView As View)
SetNextFocusUp (ThisView As View, NextView As View)
Librería Administrador
Enlace en línea
AdminManager
Tabla de Contenidos xxiv

Librería de Animación
Animation
Librería Audio
Lista de tipos:
AudioRecordApp
AudioStreamer
Beeper
JetPlayer
MediaPlayerStream
SoundPool
VideoRecordApp
VideoView
Librería B4XEncryption
B4XCipher
Librería BitmapCreator
Lista de tipos:
ARGBColor
BitmapCreator
DrawTask
PremultipliedColor
Librería CallSubUtils (heredada)
CallSubUtils
RunDelayedData
Librería Camera
Clase CameraEx
Lista de tipos:
Camera
Librería Camera2
Camera2
CameraSize
Librería ContentResolver
Lista de tipos:
ContentResolver
ContentValues
Uri
Librería DateUtils
DateUtils
Libería Daydream
Daydream
Librería FirebaseAdMob
Lista de tipos:
AdView
InterstitialAd
NativeExpressAd
RewardedVideoAd
Librería FirebaseAnalytics
FirebaseAnalytics
Librería FirebaseAuth
FirebaseAuth
FirebaseUser
Librería FirebaseNotifications
FirebaseMessaging
RemoteMessage
Librería FirebaseStorage
FirebaseStorage
StorageMetadata
Librería GameView
Tutorial
Lista de tipos:
BitmapData
Tabla de Contenidos xxv

GameView
Librería GPS
Lista de tipos:
GPS
GPSSatellite
Location
Librería HTTP (Legacy)
Lista de tipos:
HttpClient
HttpRequest
HttpResponse
Librería HttpUtils2 (Legacy)
HttpJob
Librería IME
IME
Librería JavaObject
JavaObject
Librería JSON
Acerca de JSON
JSONGenerator
JSONParser
Librería KeyValueStore2
KeyValueStore
Librería LiveWallpaper
LWEngine
LWManager
Librería Network
Lista de tipos:
ServerSocket
Socket
UDPPacket
UDPSocket
Librería NFC
Librería versión 2.01
A cerca de NFC
NdefRecord
NFC
TagTechnology
Librería OkHttp
Lista de tipos:
OkHttpClient
OkHttpRequest
OkHttpResponse
Librería OkHttpUtils2
HttpJob
HttpUtils2Service
MultipartFileData
Librería Phone
CallItem
CallLog
Contact
Contacts [Objeto antiguo]
Contacts2
ContentChooser
Email
LogCat
PackageManager
Phone
PhoneAccelerometer [Objeto antiguo]
PhoneCalls
Tabla de Contenidos xxvi

PhoneEvents
PhoneId
PhoneIntents
PhoneOrientation [Objeto antiguo]
PhoneSensors
PhoneSms
PhoneVibrate
PhoneWakeState
RingtoneManager
Sms
SmsInterceptor
SmsMessages
VoiceRecognition
Librería de Activity de Preferencias
Limitaciones de PreferenceActivity
Lista de tipos:
PreferenceCategory
PreferenceManager
PreferenceScreen
Librería RandomAccessFile
AsyncStreams
B4XSerializator
CompressedStreams
CountingInputStream
CountingOutputStream
RandomAccessFile
Librería Reflection
Notas
Reflector
Librería RuntimePermissions
RuntimePermissions
Librería Serial
Lista de tipos:
BluetoothAdmin
Serial
Librería Sip
Lista de tipos:
Sip
SipAudioCall
Librería SQL
Lista de tipos:
Cursor
ResultSet
SQL
Librería StringUtils
StringUtils
Librería TTS
TTS
Librería USB
Lista de tipos:
MtpDevice
UsbAccessory
UsbDevice
UsbDeviceConnection
UsbEndpoint
UsbInterface
UsbManager
UsbRequest
Librería ViewsEx
FloatLabeledEditText
Tabla de Contenidos xxvii

RatingBar
Switch
Librería xCustomListView
CLVItem
CustomListView
Librería XmlSax
XML
Sax
Atributos
SaxParser
Librería XUI
Lista de tipos:
B4XBitmap
B4XCanvas
B4XFont
B4XPath
B4XRect
B4XView
XUI
4.3 Módulos y Librerías Adicionales
Introducción
Encontrar Librerías Adicionales
Carpeta de Librerías Adicionales
Indicar al IDE dónde encontrar librerías adicionales
Librerías y Clases Oficiales Adicionales
Adiquity
AdMob
AnotherDatePicker class
AsyncStreamsText
Analytics
Audio
Bluetooth Low Energy
Camera
CameraEx
DBUtils
DropBox Sync
Excel
Facebook User Authentication
Firebase RemoteConfig
GamePad
Google Play Services
HttpServer
InAppBilling
JSch
JTidy
Licensing
NB6
Net
Librería NotificationListener
OAuth
PayPal
SearchView
SMB
Speak Button
SQLCipher
StateManager
Librería StdActionBar
TableView
Tap for Tap
USB Host
Tabla de Contenidos xxviii

USBSerial
XMLBuilder
YouTube
Librerías de Usuario Adicionales
Introducción
Para obtener o actualizar una librería de usuario
¿Cuáles son las que necesita un proyecto?
Como usar una librería
Lista de librerías
Librerías de Usuario Adicionales
Descarga de Librerías de Usuarios
Plantillas de Clase a medida
Como crear una librería
Como compartir tu librería
Licencia
Librería de Diálogos
Fuente
Notas
ColorDialog
ColorDialogHSV
ColorPickerDialog
CustomDialog
CustomDialog2
DateDialog
FileDialog
InputDialog
NumberDialog
TimeDialog
Librería TabHostExtras
getTabContentViewPadding (tabHost1 As TabHost) As RectWrapper
getTabEnabled (tabHost1 As TabHost, index As Int) As Boolean
getTabHeight (tabHost1 As TabHost) As Int
getTabHostPadding (tabHost1 As TabHost) As RectWrapper
getTabTextSize (tabHost1 As TabHost) As Float
getTabVisibility (tabHost1 As TabHost, index As Int) As Boolean
setTabContentViewPadding (tabHost1 As TabHost, left As Int, top As Int, right As Int, bottom As Int)
setTabEnabled (tabHost1 As TabHost, enabled As Boolean)
setTabEnabled2 (tabHost1 As TabHost, enabled As Boolean, index As Int)
setTabGradientDrawable (tabHost1 As TabHost, orientation As String, color1 As Int, color2 As Int,
cornerRadius As Float)
setTabGradientDrawable2 (tabHost1 As TabHost, orientation As String, color1 As Int, color2 As Int,
cornerRadius As Float())
setTabHeight (tabHost1 As TabHost, tabHeight As Int)
setTabHostPadding (tabHost1 As TabHost, left As Int, top As Int, right As Int, bottom As Int)
setTabTextColor (tabHost1 As TabHost, Color As Int)
setTabTextColorStateList (tabHost1 As TabHost, ColorStateListName As String)
setTabTextSize (tabHost1 As TabHost, TextSize As Float)
setTabTitle (tabHost1 As TabHost, Title As String, TabIndex As Int)
setTabVisibility (tabHost1 As TabHost, visible As Boolean)
setTabVisibility2 (tabHost1 As TabHost, visible As Boolean, index As Int)
Librería Toggle
Parte 5: Herramientas y servicios externos
5.1 Servicios Firebase
¿Qué es Firebase?
Integración de servicios Firebase en B4A
Más información sobre las API de Google para Android
Servicios de Firebase soportados en B4A
FirebaseAnalytics: Analytics & crash reports
Notifications / Push messages
Publicidad de AdMob
Tabla de Contenidos xxix

Autenticación con cuentas de Facebook o Google


Firebase RemoteConfig
Más Información
Proyecto Google API
Agregar los fragmentos de Firebase
5.2 Repositorios Maven
Proyecto Apache Maven
Repositorios Maven
Maven artifacts
Repositorios de Android SDK y maven
Herramientas
Beneficios
5.3 Soporte de Librería AAR
Introducción
Añadir referencia a AAR
Incluyendo librerías AAR en Apps de B4A
Ejemplo 1
Ejemplo 2
Índice

Potrebbero piacerti anche