Vous êtes sur la page 1sur 319

Gua para principiantes

Copyright: 2011 cualquier Software

Edicin 2.1

Tabla de contenido

Basic4Android Gua del principiante

Getting started.........................................................................................................................7
1.1
Instalacin de Basic4Android y Android SDK....................................................................7
1.1.1
Instalar y configurar Basic4Android........................................................................9
1.2
Instalar emulador Android.......................................................................................... 10
2
Mi primer programa (MyFirstProgram.b4a)............................................................................... 15
3
Segundo programa (SecondProgram.b4a)................................................................................. 33
4
The IDE ................................................................................................................................ 47
4.1
Menu and Toolbar.......................................................................................................... 48
4.1.1
Toolbar .................................................................................................................. 48
4.1.2
File menu ............................................................................................................... 49
4.1.3
Edit menu............................................................................................................... 49
4.1.4
Project menu .......................................................................................................... 50
4.1.5
Tools menu ............................................................................................................ 51
4.2
Code area....................................................................................................................... 53
4.2.1
4.2.2
4.2.3
4.2.4

Deshacer rehacer
............................................................................................. 53
Collapse a subroutine ............................................................................................. 53
Collapse a Region ..................................................................................................54
Collapse the whole code......................................................................................... 55

4.2.5

Cdigo comentario y uncommenting

4.2.6

Marcadores

4.2.7

Sangra

...................................................... 56

.................................................................................. 56
............................................................................................... 57

4.2.8
Autocompletar
.................................................................................................59
4.2.9
Jump to a subroutine .............................................................................................. 61
4.2.10
Destacando las ocurrencias de palabras................................................... 62
4.2.11
Debugging ............................................................................................................. 63
4.2.12
Breakpoints............................................................................................................ 65
4.3
Tabs............................................................................................................................... 68
4.3.1

Listas de mdulo y subrutina

............................................................... 68

4.3.2

Archivos

....................................................................................................... 69

4.3.3

Registros

...................................................................................................... 70

4.3.4
Libs
........................................................................................................ 71
Screen sizes and resolutions................................................................................................... 72
5.1
Funciones especiales como 50% x, 50dip................................................ 77
5.1.1
PerXToCurrent, PerYToCurrent - 50% x...................77
5.1.2
DipToCurrent - 50dip............................................................................................. 77
5.2
Trabajar con diferentes tamaos de pantalla \/ nmero de diseos.................................... 78
5.3
Screen orientations......................................................................................................... 84
6
The Emulator......................................................................................................................... 85
6.1
Launch an Emulator....................................................................................................... 85
6.2
Create a new Emulator................................................................................................... 87
6.3
Emulator problems......................................................................................................... 89
6.3.1
Process timeout...................................................................................................... 90
6.4
Intercambio de archivos con el PC......................................................................................... 91
7
B4A Bridge ........................................................................................................................... 94
8
The Designer ......................................................................................................................... 97
8.1
The menu....................................................................................................................... 98
8.1.1
File menu ............................................................................................................... 98
8.1.2
AddView menu ...................................................................................................... 98
8.1.3
The Tools menu ..................................................................................................... 99
5

Tabla de contenido

Basic4Android Gua del principiante

8.2
Tools ........................................................................................................................... 100
8.2.1
Generate Members ............................................................................................... 100
8.2.2
BringTo Front ...................................................................................................... 101
8.2.3
Send To Back....................................................................................................... 101
8.2.4
Duplicate Selected View ...................................................................................... 101
8.2.5
Remove Selected View ........................................................................................ 102
8.2.6
Change grid.......................................................................................................... 102
8.2.7
Conecte el dispositivo o el emulador.................................................................................. 103
8.3
General settings ........................................................................................................... 103
8.4
Image files................................................................................................................... 104
8.5
Properties list............................................................................................................... 105
8.6
Layout variants ............................................................................................................ 107
8.7
The Abstract Designer ................................................................................................. 112
8.7.1
The menu ............................................................................................................. 113
8.7.2
Example............................................................................................................... 114
8.8
Adding views by code.................................................................................................. 117
8.9
Designer Scripts........................................................................................................... 120
9
Actividad y proceso de ciclo de vida............................................................................................. 126
9.1
Cmo maneja? ................................................................................................. 127
9.2
Process global variables............................................................................................... 128
9.3
Activity variables......................................................................................................... 128
9.4
Sub Activity_Create (cumshot As Boolean)............................................................ 128
9.5
Globals versus FirstTime ............................................................................................. 129
9.6
Sub Activity_Resume Sub Activity_Pause (UserClosed As Boolean)...................... 129
10
Variables and objects....................................................................................................... 130
10.1 Variable Types............................................................................................................. 130
10.2 Names of variables ...................................................................................................... 132
10.3 Declaring variables ...................................................................................................... 132
10.3.1
Simple variables................................................................................................... 132
10.3.2
Array variables..................................................................................................... 133
10.3.3
Array of views (objects)....................................................................................... 135
10.3.4
Type variables...................................................................................................... 136
10.4 Casting ........................................................................................................................ 137
10.5 Scope........................................................................................................................... 138
10.5.1
Process variables.................................................................................................. 138
10.5.2
Activity variables................................................................................................. 138
10.5.3
Local variables..................................................................................................... 138
10.6 Tips ............................................................................................................................. 139
11
Modules........................................................................................................................... 140
11.1 Activity modules.......................................................................................................... 141
11.2 Code modules .............................................................................................................. 142
11.3 Service modules........................................................................................................... 143
12
Example programs........................................................................................................... 144
12.1 User interfaces............................................................................................................. 144
12.1.1
Ejemplo de men (UserInterfaceMenu.b4a).................................................... 145
12.1.2
Ejemplo de TabHost (UserInterfaceTabHost.b4a)............................................... 146
12.1.3
Ejemplo de cuadro de herramientas (UserInterfaceButtonToolbox.b4a) el botn........................... 147
12.2 Programa con 3 actividades (ThreeActivityExample.b4a)................................ 148
12.3 ScrollView examples ................................................................................................... 155
12.3.1
Programa de ejemplo ScrollView............................................................................... 156
13
Basic language................................................................................................................. 167
13.1 Program flow............................................................................................................... 167
13.1.1
Process_Globals routine....................................................................................... 167

Tabla de contenido

Basic4Android Gua del principiante

13.1.2
Globals routine..................................................................................................... 168
13.1.3
Rutina de Activity_Create (cumshot As Boolean).................................................. 168
13.1.4
Activity_Resume routine...................................................................................... 168
13.1.5
Rutina de Activity_Pause (UserClosed As Boolean)........................................... 168
13.2 Expressions.................................................................................................................. 170
13.2.1
Expresiones matemticas............................................................................................ 170
13.2.2
Relational expressions.......................................................................................... 171
13.2.3
Boolean expressions............................................................................................. 171
13.3 Conditional statements................................................................................................. 172
13.3.1
If Then End If................................................................................................. 172
13.3.2
Select Case........................................................................................................ 173
13.4 Loop structures ............................................................................................................ 175
13.4.1
For Next............................................................................................................ 175
13.4.2
Do - Loop ............................................................................................................ 176
13.5 Subs............................................................................................................................. 177
13.5.1
Declaring ............................................................................................................. 177
13.5.2
Calling a Sub........................................................................................................ 177
13.5.3
Llamar a un Sub desde otro mdulo......................... 177
13.5.4
Naming ................................................................................................................ 178
13.5.5
Parameters ........................................................................................................... 178
13.5.6
Returned value ..................................................................................................... 178
13.6 Events.......................................................................................................................... 179
13.7 Libraries ...................................................................................................................... 182
13.7.1
Standard libraries ................................................................................................. 182
13.7.2
Carpeta de bibliotecas adicionales............................................................................................ 182
13.7.3
Mensaje de error \"falta una referencia de la biblioteca?\".......................................... 183
13.8 String manipulation ..................................................................................................... 184
13.9 Timers ......................................................................................................................... 185
13.10
Files......................................................................................................................... 186
13.10.1
File object ........................................................................................................ 186
13.10.2
Filenames......................................................................................................... 188
13.10.3
Subfolders........................................................................................................ 188
13.10.4
TextWriter........................................................................................................ 189
13.10.5
TextReader....................................................................................................... 190
13.10.6
Text encoding................................................................................................... 191
13.11
Lists......................................................................................................................... 193
13.12
Maps........................................................................................................................ 195
14
Graphics \/ Drawing.......................................................................................................... 197
14.1 Overview..................................................................................................................... 197
14.2 Drawing test programs................................................................................................. 199
14.2.1
Plano de rotacin de mapas de bits \/ RotatingNeedle............................................ 199
14.2.2
Simple draw functions.......................................................................................... 204
15
B4A Keywords................................................................................................................ 213
15.1 Bit ............................................................................................................................... 213
15.2 DateTime..................................................................................................................... 214
15.3 Exception..................................................................................................................... 217
15.4 Keywords .................................................................................................................... 218
15.5 LayoutValues............................................................................................................... 230
15.6 String........................................................................................................................... 231
15.7 StringBuilder ............................................................................................................... 233
15.8 Timer........................................................................................................................... 235
16
Views .............................................................................................................................. 237
16.1 Activity........................................................................................................................ 237

Tabla de contenido

Basic4Android Gua del principiante

16.2 Button.......................................................................................................................... 241


16.3 CheckBox.................................................................................................................... 244
16.4 EditText....................................................................................................................... 247
16.5 ImageView .................................................................................................................. 252
16.6 Label ........................................................................................................................... 255
16.7 ListView...................................................................................................................... 258
16.8 Panel............................................................................................................................ 263
16.9 ProgressBar ................................................................................................................. 266
16.10
RadioButton............................................................................................................. 268
16.11
ScrollView............................................................................................................... 271
16.12
SeekBar ................................................................................................................... 274
16.13
Spinner .................................................................................................................... 277
16.14
TabHost ................................................................................................................... 281
16.15
ToggleButton........................................................................................................... 285
16.16
View ........................................................................................................................ 288
16.17
WebView................................................................................................................. 290
17
Collections ...................................................................................................................... 294
17.1 List .............................................................................................................................. 294
17.2 Map ............................................................................................................................. 298
18
VB6 versus B4A.............................................................................................................. 10s
19
FAQ ................................................................................................................................ 306
19.1 \"Por favor Guardar proyecto primero\" mensaje............................................................................ 306
19.2 \"Le falta una referencia de la biblioteca\" mensaje............. 306
19.3 Cmo cargar \/ actualizar una biblioteca.................................................................................. 307
19.4 Cuando necesitamos 'Initialize' y cuando no..................................................................... 307
19.5 Dividir una lnea larga en dos o ms lneas................................................... 308
19.6 Evitar cerrar una aplicacin \/ captura cdigos de tecla como Back \/ men............................... 308
19.7 Eventos no deseados como clic, toque u otros............................................................ 309
19,8 Adding a Menu item .................................................................................................... 309
19.9 Cmo elimino una vista con el diseador........................................................... 310
19.10
\"El proceso tiene tiempo de espera\" mensaje............................................................................... 310
19.11
Obtener una imagen de la Galera............................................................................ 311
19.12
Cmo eliminar archivos de x.bal u otros archivos de un proyecto............................................. 311
19.13
Block a screen orientation ........................................................................................ 312
19.14
Close second Activity .............................................................................................. 313
19.15
Tomar una captura de pantalla programaticaly................................................... 313
19.16
Despus de compilar, donde estn los archivos................................................... 313
19.17
Ejecutar una aplicacin desde otra........................................................................ 314
19.18
How to pass an Array to a Sub ................................................................................. 314
19.19
Obtencin de idioma y pas de dispositivo............................................................ 315
19,20
Where is the apk file ................................................................................................ 315
19.21
Por qu es mi result.apk de nombre de archivo apk................................................. 315
19,22
Por qu es mi xxx_DEBUG.apk de nombre de archivo apk.......................................................... 316
19.23
Select True \/ Case trick ............................................................................................ 316
19.24
Llenar una matriz con nmeros aleatorios sin repeticiones................................ 316
19.25
Detect screen orientation.......................................................................................... 317
19.26
Algunas funciones no funcionan en Activity_Pause........................................................... 317
19.27
Llamar a la calculadora interna.................................................................................. 317
19,28
Obtenga la Alpha \/ rojo \/ verde \/ azul. 318
20
Glossary .......................................................................................................................... 319

Tabla de contenido

Basic4Android Gua del principiante

Colaboradores principales:
Erel Uziel
(Erel)
Klaus Christl (klaus)
nfordbscndrd
Todo el cdigo fuente y archivos necesarios (diseos, imgenes, etc.) de los proyectos de ejemplo en esta gua son
incluido en la carpeta de cdigo fuente.

1 Procedimientos iniciales

Basic4Android Gua del principiante

Introduccin

Basic4android es un entorno de desarrollo sencillo y potente orientado a dispositivos Android.


Basic4android lenguaje es similar al lenguaje de Visual Basic con soporte adicional para los objetos.
Basic4android compilado de aplicaciones son aplicaciones nativas para Android, no hay runtimes adicionales o
dependencias.
A diferencia de otros Basic4android IDEs es 100% focalizada en desarrollo Android.
Basic4android incluye un potente diseador de GUI con soporte integrado para mltiples pantallas y
orientaciones. No escribir XML es requerido.
Usted puede desarrollar y depurar con el emulador de Android o con un dispositivo real
(USB conectado o a travs de la red local).
Basic4android tiene un rico conjunto de libreras que facilitan el desarrollo de aplicaciones avanzadas.
Esto incluye: SQL bases de datos, GPS, puertos serie (Bluetooth), cmara, anlisis, servicios Web XML
(HTTP), servicios (tareas en segundo plano), JSON, animaciones, red (TCP y UDP), texto a voz
(TTS), reconocimiento de voz, vista Web, AdMob (ads), grficos, OpenGL, grficos y ms.

Android 1.6 y por encima son compatibles (incluyendo tabletas como Motorola Xoom).

1.1

Instalacin de Basic4Android y Android SDK

Basic4android depende de dos componentes adicionales (libres):


-Java JDK
-Android SDK
Instrucciones de instalacin:
Debe ser el primer paso instalar el JDK de Java como Android SDK, as lo requiere.
Tenga en cuenta que no hay ningn problema con tener varias versiones de Java instalado en el mismo equipo.
-Abrir la Link de descarga de Java JDK 7.
-Marque el botn de radio de aceptar el acuerdo de licencia.
-Seleccione \"Windows x 86\" en la lista de plataformas (para mquinas de 64 bits as).
Android SDK no funciona con Java JDK de 64 bits.
Debe instalar el JDK regular para equipos de 64 bits as.
-Descargar el archivo e instalarlo.
Siguiente paso es instalar el SDK de Android y una plataforma:
-Instalar el SDK. El SDK de siempre no comportarse correctamente cuando se instala en un trazado con
espacios (como archivos de programa). Se recomienda instalarlo en una carpeta personalizada similar a
C:\\Android.
-Ahora debe instalar las herramientas de la plataforma y la imagen de al menos una plataforma. Puede utilizar API 8 o
anteriormente. Se recomienda utilizar API 10.
Tambin puede instalar el controlador USB de Google si necesita conectarse a un dispositivo real con USB.

1 Procedimientos iniciales

Tenga en cuenta que puede instalar ms paquetes ms tarde.


-Presione en instalar seleccionado e instalar ambos paquetes.

Basic4Android Gua del principiante

1 Procedimientos iniciales

Basic4Android Gua del principiante

1.1.1 Instalar y configurar Basic4Android


- Descargar e instalar Basic4android .
-Basic4android abierto.
-Seleccionar el men de herramientas - configurar rutas de acceso.

-Utilice los botones de navegacin para localizar \"javac.exe\" y \"android.jar\"


javac se encuentra bajo < carpeta java > \\bin.
Android.jar se encuentra bajo <android-sdk-windows> \\platforms\\android-8
Depende de la carpeta donde instal el SDK de Android,
debe ser C:\\Android\\android-sdk-windows\\platforms\\android-8\\android.jar.
En Windows de 64 bits, Java probablemente se instalar en C:\\Program Files (x 86).
Errores comunes
- Windows XP-\"aplicacin de Basic4Android.exe no poda ser inicializado correctamente error
0xc0000135 \"al inicio. Basic4android requiere .net Framework 2.0 o superior. Usuarios de Windows XP
quien no instalarlo antes debe instalar primero el marco.

1.2 Instalacin de emulador Android

1.2

10

Basic4Android Gua del principiante

Instalar emulador Android

Por favor siga las instrucciones de instalacin (y configuracin) si no lo ha hecho todava:


http:\/\/www.Basic4ppc.com\/Forum\/Basic...Droid-SDK.html.
En este captulo, vamos a crear un nuevo AVD (Android Virtual Device) que es una instancia de emulador.
A continuacin, vamos a crear un sencillo programa que muestra un cuadro de mensaje de texto y escribe un mensaje a
el registro.
Tambin puede conectar un dispositivo real para el IDE:
Conectar el dispositivo con ADB
Conectar el dispositivo con B4A-puente
Crear nueva AVD
-Ejecutar Basic4android.
-Seleccionar el men de herramientas - Run AVD Manager.
Espere unos segundos.
-El SDK Manager pueden aparecer dependiendo de la versin y la configuracin. Debe elegir
Herramientas - administrar AVDs.

1.2 Instalacin de emulador Android

11

Basic4Android Gua del principiante

-El Manager de AVD debera aparecer:

-Haga clic en
HVGA):

y llene los campos relacionados de la siguiente imagen (se recomienda elegir

-Haga clic en

-Tenga en cuenta que puede crear ms de una


AVD. Cada uno puede tener una resolucin diferente
o puede destinar una versin diferente de la API (usted
ser necesario instalar plataformas adicionales
primero).

1.2 Instalacin de emulador Android

-Ahora, haga clic en

12

Basic4Android Gua del principiante

con el fin de iniciar el emulador.


-Ver esta pantalla.

-Haga clic en

para iniciar el emulador

-Ver varias ventanas apareciendo y desapareciendo. Esto est bien.

1.2 Instalacin de emulador Android

13

Basic4Android Gua del principiante

-El emulador debe arrancar:

Espere... por primera vez puede tardar varios minutos hasta que est listo el emulador.

1.2 Instalacin de emulador Android

14

Basic4Android Gua del principiante

El emulador est listo cuando se pone a


Esta pantalla:

Puede ver esta pantalla, que es la pantalla de bloqueo,


en su lugar:

Arrastre el icono de bloqueo a la derecha para desbloquear la


dispositivo.
Tenga en cuenta que no es necesario reiniciar el emulador
cada vez que se implemente un programa. El emulador
puede ser mantenido funcionando todo el tiempo.
Si no ests familiarizado con Android puede reproducir
con el emulador. Pulse sobre el botn con el
cuadrados pequeos para llegar a la pgina de la aplicacin.

Solucin de problemas: Si aparece un mensaje de error


similares a:
parmetro de lnea de comandos no vlido:
Files\\Android\\android-sdk\\tools\/emuladorARM.exe.
Sugerencia: use '@ foo' para lanzar un dispositivo virtual denominad
'foo'.

2. Mi primer programa

15

Basic4Android Gua del principiante

Mi primer programa (MyFirstProgram.b4a)

Debemos escribir nuestro primer programa.


El programa propuesto es un entrenador de matemticas para nios.
El proyecto est disponible en la carpeta de cdigo fuente:
SourceCode\\MyFirstProgram\\ MyFirstProgram.b4a

En la pantalla, tendremos:
-2 Etiquetas mostrando aleatoriamente generan nmeros
-1 Etiqueta con el signo de matemticas
-1 Vista EditText donde el usuario debe introducir el resultado
-1 Botn, se utiliza para confirmar cuando el usuario ha terminado de introducir el resultado o generar un nuevo
clculo.
-1 Etiqueta con un comentario sobre el resultado.
Vamos al diseo de la interfaz de usuario con el diseador en el emulador y vaya paso
paso a travs de todo el proceso.

2. Mi primer programa

16

Basic4Android Gua del principiante

Ejecute el IDE
Guarde el proyecto.
Debe guardar el proyecto antes de ejecutar el diseador.

Crear una carpeta nueva MyFirstProgram y guardar


el proyecto con el nombre MyFirstProgram.

Ejecutar el emulador.

Seleccione el emulador.

2. Mi primer programa

17

Basic4Android Gua del principiante

El retrato emulador, en este caso. Haga clic en

Haga clic en

Espere hasta que est listo el emulador, esto tomar bastante tiempo.

Ejecutar el diseador.

Espere hasta que el diseador est listo.

2. Mi primer programa

18

Basic4Android Gua del principiante

Conecte el emulador al diseador.


Espere hasta que el diseador y el emulador
conectado, esto puede tomar algn tiempo, ser paciente.
Podr ver el estado del diseador aqu:

La parte superior del emulador tenga este aspecto.

2. Mi primer programa

19

Basic4Android Gua del principiante

Ahora agregaremos las 2 etiquetas para los nmeros.


En el diseador de aadir una etiqueta.

La etiqueta aparecer en el emulador, y sus parmetros por defecto aparecen en el diseador.


Cambiar el tamao y mover la etiqueta con el rojo
plazas like this.

Los nuevos parmetros Left, Top, Width y


Altura se actualizan directamente en el diseador.
Tambin puede modificar la izquierda, Top, Width
y los parmetros de altura directamente en el
Diseador.

Cambiemos los parmetros de esta primera etiqueta


segn nuestras necesidades.
De forma predeterminada, el nombre es la etiqueta con un nmer
aqu Label1, nos permiten cambiar su nombre a
lblNumber1.
Las tres letras lbl al principio para
Etiqueta y nmero 1 para el primer nmero.
Se recomienda usar nombres significativos para
vistas directamente sabemos qu tipo de verlo
es y su propsito.
Presionar retorno o haciendo clic en otro lugar que tambin
cambiar el parmetro del nombre del evento.

2. Mi primer programa

20

Basic4Android Gua del principiante

Ahora tenemos:

Principal:
mdulo principal
Nombre:
nombre de la vista
Tipo:
tipo de la vista, etiqueta, este parmetro no puede cambiarse por supuesto
Nombre del evento: nombre de la rutina que controla los eventos de la etiqueta
Padre de familia:
la vista padre la etiqueta pertenece a.
Comprobar y modificar los otros parmetros:
A la izquierda, parte superior, la anchura y la altura son OK.
Habilitado, Visible son OK
Etiqueta que dejamos vaca.
Texto, establecemos un nmero predeterminado, decir 5
Tipo de letra, estilo son OK
Alineacin horizontal: pngalo en
CENTER_HORIZONTAL
Alineacin vertical: dejamos
CENTER_VERTICAL.
Tamao: ajstelo a 36
Dejamos todos los otros parmetros como son.

2. Mi primer programa

21

Basic4Android Gua del principiante

Los nuevos parmetros.

Necesitamos una segunda etiqueta similar a la primera. En lugar de agregar uno nuevo, copiamos el primero de ellos
con los mismos parmetros. Slo los parmetros de nombre, de izquierda y de arriba va a cambiar.

2. Mi primer programa

22

Basic4Android Gua del principiante

Coloque la etiqueta nueva y cambiar su nombre a lblNumber2.

Ahora agreguemos una tercera etiqueta para el signo de matemticas. Copiamos nuevamente lblNumber1.
Haga clic en lblNumber1 en el emulador y en el click del diseador en el men 'Herramientas' en ' duplicar
Vista seleccionada '.

Colocarla entre las dos etiquetas primeras y cambiar su nombre a lblMathSign y su parmetro de texto
a '+'.

2. Mi primer programa

23

Basic4Android Gua del principiante

Ahora agreguemos una vista EditText. En haga clic en diseador de

Colquelo debajo de los tres rtulos y cambiar su nombre a edtResult. 'EDP' EditText y el 'Resultado'
para su propsito.
Cambiemos estos parmetros.
Nombre
a edtResult

Alineacin horizontal
Para
CENTER_HORIZONTAL
Tamao del texto
a 30
Tipo de entrada a los nmeros
Texto de sugerencia
a 'Entrar resultado'

2. Mi primer programa

24

Basic4Android Gua del principiante

Agreguemos el botn para confirmar el resultado o para generar un nuevo clculo.

Colquelo debajo de la vista EditText; cambiar el tamao y cambiar siguiendo los parmetros:
Nombre:

a 'btnAction'

Texto:

a 'O K' y

Tamao del texto


a 24.

2. Mi primer programa

25

Basic4Android Gua del principiante

Aadir la ltima etiqueta por los comentarios, colquelo debajo del botn y cambiar su tamao.
Cambiar los siguientes parmetros:
Nombre
a lblComments

Alineacin horizontal:
CENTER_HORIZONTAL
Color del texto a negro
Color
a blanco
Alpha
a 255

De forma predeterminada, el color de fondo de la etiqueta es de c


y transparente. Lo fijamos al blanco y opaco
Alfa = 255.
Establecemos el color del texto a negro.

2. Mi primer programa

26

Basic4Android Gua del principiante

Salvemos el diseo en un archivo.

Haga clic en

y guardarlo con el nombre 'Main'.

Haga clic en

Para escribir las rutinas para el proyecto que tenemos que hacer referencia a las opiniones expresadas en el cdigo.
Esto puede hacerse con la herramienta de generar miembros en el diseador.

2. Mi primer programa

27

Basic4Android Gua del principiante

La herramienta de generar miembros permite para generar automticamente referencias y marcos de subrutina.

Haga clic en

para abrir el generador.

Aqu encontramos todas las vistas en el diseo actual.


Verificamos todas las vistas y controlar el evento Click para el botn de btnAction.
Comprobacin de una vista
genera su referencia en la Globals Sub en el cdigo. Esto es
necesarios para que la vista reconoce y permite la funcin de Autocompletar.

Al hacer clic en el evento en

Haga clic en

de una vista genera el marco Sub para este evento.

para generar las referencias y sub marco y

2. Mi primer programa

28

Basic4Android Gua del principiante

Ahora volvemos al IDE para introducir el cdigo.


En primer lugar, tenemos que cargar nuestro archivo de diseo a la actividad en el Sub Activity_Create.
-Entrar en 'Actividad'

-Introduzca un punto

-La funcin de Autocompletar muestra automticamente todos los parmetros posibles de la vista.
-Entrar en 'L', la muestra de la funcin de Autocompletar los parmetros empezando con 'L'

-Pulse la tecla de flecha abajo, aparecer LoadLayout con la ayuda en lnea para el parmetro determinado o
mtodo.

2. Mi primer programa

29

Basic4Android Gua del principiante

-Pulsar 'Return', se aade LoadLayout.

-Entrar ' (', la ayuda en lnea se mostrar los parmetros necesarios para el mtodo.

-Introduzca ' \"Principal\") '

Queremos generar un nuevo problema directamente al iniciar el programa. Por lo tanto, agregamos una llamada a
la subrutina nueva.

Para generar un nuevo problema, que significa generar nmeros aleatorios dos Nmero1 y nmero2
entre 1 y 9 y espectculo en la lblNumber1 y la lblNumber2 etiquetas.
Para ello nos Introduzca el siguiente cdigo:
En Sub Globals aadimos dos variables para los dos nmeros.

Y la 'Nueva' subrutina:

RND (1, 10) Generador de nmeros aleatorios, '1' nmero de minutos inclusivo y max '10'. nmero exclusivo.
lblComments.Text = \"Escriba el resultado\"
Muestra el comentario de lblComments. CRLF es el carcter de salto de lnea.

2. Mi primer programa

30

Basic4Android Gua del principiante

Ahora aadimos el cdigo para el evento de clic de botn.


Tenemos dos casos:
-Cuando el texto del botn es igual a \"O K\" Esto significa que se propone un nuevo problema y la
programa esperar al usuario ingresar un resultado y, a continuacin, pulsando el botn.
-Cuando el texto del botn es igual a \"Nuevo\" Esto significa que el usuario ha introducido una respuesta correcta y
Cuando el usuario hace clic en el botn se generar un nuevo problema.

Si btnAction.Text = \"O K\" Then comprueba si el texto del botn es igual a \"O K\"

Si comprobamos si el EditText est vaca.


Si s, nos mostrar un cuadro de mensaje que indica al usuario que no existe ningn resultado en la vista EditText.
Si no, se comprueba si el resultado es correcto o si es falsa.
Si no que entonces generamos un nuevo problema, establezca el texto del botn de \"OK\" y borrar la vista EditText.
La ltima rutina es la comprobacin del resultado.

Con Si edtResult.Text = nmero1 + nmero2 luego comprobamos si el resultado es correcto.


En caso afirmativo, exhibimos en la etiqueta de lblComments el texto a continuacin:
'Resultado de G O O D'
'Haga clic en nuevo'
y cambiar el texto del botn a N E W.
Si no, nos muestra en la etiqueta de lblComments el texto a continuacin:
Resultado W R O N G
Introduzca un nuevo resultado
y haga clic en Aceptar

2. Mi primer programa

31

Basic4Android Gua del principiante

Permtanos ahora compilar el programa y transferirlo al emulador.


En el IDE en superior, haga clic en :

Todava no hemos puesto el nombre del paquete para que el IDE lo pide. Escriba B4A.MyFirstProgram.
Android necesita el paquete nombre beeing minsculas. Desde B4A esto es obligatorio!

Haga clic en

Tambin tenemos que entrar en la


Nombre de la etiqueta

Haga clic en

Estos dos parmetros tambin pueden cambiarse en el IDE en el men proyecto.


El programa va a ser compilado.

Cuando veas \"Ha completado con xito.\" por encima del cuadro de mensaje, la compilacin y la transferencia es
terminado.
Mira el emulador, debera ver algo similar a la imagen a continuacin, con diferentes nmeros.

2. Mi primer programa

32

Basic4Android Gua del principiante

Por supuesto, podramos hacer estticas


mejoras en el diseo, pero este no era el
cuestin principal para el primer programa.

Una desventaja del diseo actual es el


cobertura de la etiqueta de comentario por la virtual
teclado.
Esto mejorar en el prximo captulo
'Segundo programa'.
Vamos a agregar un teclado especfico.

3 Segundo programa

33

Basic4Android Gua del principiante

Segundo programa (SecondProgram.b4a)

El proyecto est disponible en la carpeta de cdigo fuente:


SourceCode\\SecondProgram\\SecondProgram.b4a
Mejoras de mi primer programa.
Crear una carpeta nueva SecondProgram. Copiar todos los archivos y carpetas de MyFirstProgram a la
Nueva carpeta de SecondProgram y renombrar el programa file MyFirstProgram.b4a a
SecondProgram.b4a.
Cargar este programa nuevo en el IDE.
Ejecuta el diseador y conctelo a la
Emulador.
Agreguemos un teclado numrico para el diseo
para evitar el uso del teclado virtual.
Necesitamos cambiar el nombre del paquete.
En el men Proyecto de IDE.
Nombre
del proyecto
Haga clic en
'
'

Cambiar el nombre a
B4A.secondprogram, atencin minsculas!
Haga clic en

3 Segundo programa

34

Basic4Android Gua del principiante

Y cambiar la etiqueta de la aplicacin.


Etiqueta
de aplicacin
Haga clic en
'
' en el mismo men.

Cambiar el nombre a
SecondProgram.
Haga clic en

3 Segundo programa

35

Basic4Android Gua del principiante

Queremos sustituir la edtResult EditText vista por una nueva etiqueta.


En el emulador y el diseador.
Haga clic en la vista edtResult.

Haga clic en

Haga clic en lblNumber1 para seleccionarlo.

Duplicar

3 Segundo programa

36

Basic4Android Gua del principiante

Moverlo entre las etiquetas superiores y la


botn y cambiar su tamao.

Modificar siguiendo los parmetros:


Nombre

a lblResult

Texto

para \"\" en blanco de carcter

Color del texto

a negro

Radio de esquina 5
Color
a blanco
Alpha
a 255

3 Segundo programa

37

Basic4Android Gua del principiante

Agreguemos un Panel de los botones del teclado.

Posicin y cambiar su tamao como en la imagen.

Cambiar su nombre a pnlKeyboard


\"pnl\" para el Panel, el tipo de vista.

Radio de esquina de cambio 0

3 Segundo programa

38

Basic4Android Gua del principiante


Vamos a pasar el botn K O de la
Actividad para el Panel de pnlKeyboard.

Haga clic en

El botn pertenece ahora al Panel

Mover lblComments etiqueta etiqueta cerca


lblResult y aumento de la altura del Panel
pnlKeyboard como en la imagen.

3 Segundo programa

39

Basic4Android Gua del principiante

Haga clic en el panel de pnlKeyboard para seleccionarlo.

Haga clic en
para agregar un nuevo botn.

Se agrega el botn nuevo.

Cambiar siguiendo los parmetros.


Nombre
a btn0
Nombre del evento
a btnEvent
Izquierda
Arriba
Ancho
Altura

a 10
a 120
a 55
a 55

Etiqueta
Texto

0
0

Tamao

a 24

Ahora queremos cambiar los colores de los botones.


Haga clic en StatelistDrawable.

Haga clic en GradientDrawable

3 Segundo programa

40

Basic4Android Gua del principiante


Cambiar los siguientes parmetros.
Orientacin a Alto_Bajo
Primer Color
Segundo Color

Presiona dibujable

a GradientDrawable

Orientacin a Alto_Bajo
Primer Color
Segundo Color

El botn ahora este aspecto.

Duplicar btn0 y colquelo aparte


botn btn0.
Cambiar siguiendo los parmetros.
Nombre

Etiqueta
Texto

a btn1

1
1

Permtanos agregar 8 botones ms y colquelas


como en la imagen.
Cambiar siguiendo los parmetros:
Nombre btn2, btn3, btn4 etc.
Etiqueta2 , 3 etc. 4
Texto 2 , 3 etc. 4

3 Segundo programa

41

Basic4Android Gua del principiante


Duplicar uno de los botones de nmero, y
colocarlo como en la imagen.
BtnOK de cambio de tamao y posicin.
Cambiar el pnlKeyboard Color negro.
Cambiar su nombre, etiqueta, texto y Color
parmetros siguientes.

btnBS

<

btnOK

Ok

3 Segundo programa

42

Basic4Android Gua del principiante

El nuevo diseo terminado.

Ahora actualizamos el cdigo.


En primer lugar, debemos reemplazar la edtResult por lblResult porque hemos reemplazado la vista EditText por una etiqueta.

Haga clic en edtResult para seleccionarlo.

Haga clic en Find(F3)

3 Segundo programa

43

Basic4Android Gua del principiante

Haga clic en

Haga clic en

Tambin tenemos que cambiar su forma de tipo de vista EditText etiqueta.

Ahora escribimos la rutina, controla los eventos de clic de los botones.


El nombre del evento para todos los botones, salvo btnAction, es \"btnEvent\".
El nombre de rutina ser convertido en btnEvent_Click, nos Introduzca el siguiente cdigo:

Necesitamos saber qu botn provoc el evento. Para ello, utilizamos el objeto remitente que es especial
objeto que contiene la referencia de objeto de la vista que gener el evento en el evento de rutinario.
Para tener acceso a los parmetros de la vista que plante la
evento declaramos una variable local vista Dim enviar como botn.
Enviar = Sender.
Y conjunto
Luego a hacer la diferencia entre el botn de retroceso y
el teclado NUMERICO usamos un Select \/ carcasa \/ finalizar Seleccione
estructura y uso el parmetro de la etiqueta de los botones. Recuerde,
Cuando agregamos los diferentes botones establecemos su parmetro de etiqueta
a BS, 0, 1, 2, etc..
Seleccione Send.Tag
Caso \"BS\"
Otro caso

establece la variable para probar.


comprueba si es el botn con el valor de la etiqueta de \"BS\".
maneja todos los botones.

3 Segundo programa

44

Basic4Android Gua del principiante

Ahora aadimos el cdigo para el teclado NUMERICO.


Queremos agregar el valor del botn al texto en la etiqueta de lblResult.

Esto se hace en lnea 75 con

lblResult.Text = lblResult.Text

El\"
el botn que provoc el evento.
Ahora aadimos el cdigo para el botn de retroceso.

Al hacer clic en el botn de BS en que debemos eliminar el ltimo carcter del texto existente
lblResult.
Sin embargo, esto slo es vlido si la longitud del texto es mayor que 0. Esto se comprueba con:
Si lblResult.Text.Length > 0 Then

Para quitar el ltimo carcter utilizamos la funcin SubString2.

lblResult.Text = lblResult.Text.SubString2 (0,lblResult.Text.Length - 1)

SubString2 (BeginIndex, EndIndex) extrae un nuevo comienzo de la cadena en BeginIndex (inclusive) hasta
EndIndex (exclucive).
Ahora la rutina toda est terminada.

3 Segundo programa

45

Basic4Android Gua del principiante

Podemos intentar mejorar la interfaz de usuario del programa en agregar algunos colores a la lblComments
Etiqueta.
Debemos definir:
-Amarillo
para un nuevo problema
-Luz verde para una buena respuesta
-Luz roja
para una respuesta equivocada.
Permtanos primero modificar la nueva rutina, donde agregamos lnea 55.

Y en la rutina CheckResult agregamos lneas 62 y 66.

3 Segundo programa

46

Basic4Android Gua del principiante

Otra mejora sera ocultar el botn '0' para evitar entrar en un lder '0'.
Para ello, podremos ocultar el botn en la subrutina nuevo en lnea 57.

Adems, en la subrutina btnEvent_Click, podremos ocultar el botn si la longitud del texto en


lblResult es igual a cero y mostrarlo si la longitud es mayor que cero, las lneas de 85 a 89.

Cuando nosotros estamos accediendo a btn0 en el cdigo que hay que declararlo en la rutina de Globals.
Modificar lnea 12 como a continuacin:

4 El IDE

47

El IDE

El entorno de desarrollo integrado.


Al ejecutar el IDE obtendr un formulario similar a la siguiente imagen:
Ejemplo: SecondProgram.b4a.

Basic4Android Gua del principiante

4 El IDE

4.1

48

Basic4Android Gua del principiante

Men y barra de herramientas

4.1.1 Toolbar
Genera un nuevo proyecto vaco.
Carga un proyecto.
Guarda el proyecto actual.
Copia el texto seleccionado al Portapapeles.
Corta el texto seleccionado y lo copia en el Portapapeles.
Pega el texto en el Portapapeles en la posicin del cursor.
Deshace la ltima operacin.
Rehace la operacin anterior.
Activa la funcin Buscar y reemplazar.
Establece las lneas seleccionadas como comentarios.
Uncomments las lneas seleccionadas.
Navegar hacia atrs
Navegar hacia delante
Agrega un marcador.
Elimina un marcador.
Volver al marcador anterior.
Avanzar al siguiente marcador.
Funcin de Autocompletar Ctrl + espacio.
Disminuir la sangra de las lneas seleccionadas.
Aumentar la sangra de las lneas seleccionadas.
Se ejecuta el compilador.
Lista de opciones del compilador y depuracin
Lista de rutina

4 El IDE

49

Basic4Android Gua del principiante

4.1.2 Men de archivo

Genera un nuevo vaco


Nuevo
proyecto.
Open Source Carga un proyecto.
Guarda el proyecto actual.
Guardar
Exportar como Zip exporta todo el proyecto
en un archivo zip.
Configuracin
de las pginas para impre
Configuracin de
pgina
Imprimir vista previa muestra una vista previa de imp
Imprime el cdigo.
Impresin
Lista de los ltimos programas cargados.

4.1.3 Editar men

Corte
Portapapeles.
Lnea de corte
Copia
Pasta
posicin.

Corta el texto seleccionado y lo copia a la

Deshacer
Rehacer
Encontrar

Deshace la ltima operacin.


Rehace la operacin anterior.
Activa la funcin Buscar y reemplazar.

Cortes de la lnea de la posicin del cursor.


Copia el texto seleccionado al Portapapeles.
Pega el texto en el Portapapeles en la posicin del cursor

Comentario en bloque Establece las lneas seleccionadas como comentarios.


Bloque sin comentariosUncomments las lneas seleccionadas.
Eliminar todos los marcadores Marcadores.
Puntos de interrupcin.
Quitar todos los puntos de interrupcin
Contraer el cdigo entero.
Esquematizacin

4 El IDE

50

Basic4Android Gua del principiante

4.1.4 Men de proyecto


Agrega un nuevo mdulo
Aadir un mdulo existente
Cambia el nombre del mdulo
Quita el mdulo actual
Oculta el mdulo actual
Propiedades de la actividad, ver abajo.
Elige un icono para el programa.
Cambia el nombre del paquete.
Cambia el nombre de la aplicacin.
Cambia la versin de la aplicacin.
Est activada, el programa se instala en externo
almacenamiento de informacin.
No sobrescribir el archivo de manifiesto
Orientaciones compatibles, vea abajo.
Editor de manifiesto
Diferentes modos de compilacin.

Agregar un nuevo mdulo


Mdulo de actividad
Mdulo de cdigo
Mdulo de servicio
Propiedades de la actividad

El programa puede ser a pantalla completa o no


El programa puede incluir la barra de ttulo o no.
Orientaciones compatibles
Ambos modos.
Retrato slo.
Paisaje slo.

4 El IDE

51

Basic4Android Gua del principiante

4.1.5 Men de herramientas


Opciones de IDE

Vea a continuacin

Limpiar la carpeta de archivos (archivosVea


no utilizados)
la pgina siguiente
Proyecto limpio
Vea la pgina siguiente
Ejecutar el administrador de AVD
Configure Paths

Realizar captura de pantalla


Vea la pgina siguiente
Cambiar tamao de tabulacin.
Cambiar fuente.,
no se recomienda.
Word wrap, ver abajo.
Guardado automtico, ver abajo.
Mostrar informacin sobre herramientas, vea
a continuacin.
Configurar el tiempo de espera de proceso
Word wrap
Sin ajuste de texto.

El final de la lnea est oculto.

Con ajuste de texto.

El final de la lnea se envuelve a la lnea siguiente.

Guardado automtico
Guarda el programa al ejecutarlo.
Mostrar informacin sobre herramientas en escribir
Mostrar informacin sobre herramientas comprobado.

Mostrar informacin sobre herramientas desactivada.

4 El IDE

52

Basic4Android Gua del principiante

Realizar captura de pantalla


El

funcin puede llamarse desde el:


Men de herramientas cuando el IDE est en modo de edicin
Men de depuracin cuando el IDE est en modo de depuracin
Haga clic en
muestra esta ventana.

Haga clic en
para realizar la captura de pantalla
Foto desde el dispositivo o el emulador.

Puede guardar la imagen con


como un archivo PNG.
Y puede cambiar la orientacin
de la imagen.

Limpiar la carpeta de archivos (archivos no utilizados)


Elimina los archivos que se encuentran en la carpeta de archivos pero no son utilizados por el proyecto (no eliminar
cualquier referencia de archivo por cualquiera de los diseos de proyecto). Se mostrar una lista de archivos no utilizados an
eliminacin (y permite cancelar la operacin).
Proyecto limpio

Elimina todos los genera los archivos que se generan durante la compilacin.

4 El IDE \/ 4.2 Cdigo rea

4.2

53

Basic4Android Gua del principiante

Cdigo de rea

El cdigo del mdulo seleccionado se mostrar en esta rea y puede editarse.


Los ejemplos siguientes se basan en el cdigo de la SecondProgram.

4.2.1 Deshacer rehacer


En el IDE es posible deshacer las operaciones anteriores y rehacer operaciones de deshacer.
Haga clic en

deshacer y

para rehacer.

4.2.2 Contraer una subrutina


En el IDE se puede contraer una subrutina para minimizar el nmero de lneas que se muestran.
La rutina de btnAction_Click expandido.
Haga clic en la pequea plaza de izquierda a
Sub para contraer la subrutina.

La rutina de btnAction_Click se derrumb.

Flotando con el ratn sobre el nombre de rutina contrado muestra su contenido.

4 El IDE \/ 4.2 Cdigo rea

54

Basic4Android Gua del principiante

4.2.3 Contraer una regin


En el cdigo puede definir regiones y er estos.
Ejemplo:
# Region GPS establece el principio de una regin y
Regin # end Fin

A continuacin, puede agregar las subrutinas entre los dos lmites:

A continuacin, haga clic en

se derrumba toda la regin.


Flotando sobre GPS
muestra el comienzo del cdigo, no todas las rutinas en la regin.

4 El IDE \/ 4.2 Cdigo rea

55

Basic4Android Gua del principiante

4.2.4 Contraer el cdigo completo

En el men Edicin existen tres


funciones:
-Cambiar todo
Se expande el colapsado
las rutinas y se derrumba el
rutinas extendidas y regiones.
-Se expande todos
Se expande el cdigo completo
-Contraer todo
Contrae el cdigo entero.
Haga clic en All ER.

El cdigo de todo se derrumb.

Flotando con el ratn sobre un


subrutina muestra todava la
a partir de su contenido.

4 El IDE \/ 4.2 Cdigo rea

56

Basic4Android Gua del principiante

4.2.5 Comentando y uncommenting cdigo


Una parte seleccionada del cdigo puede ser establezca lneas de comentario o a la normalidad.
Cdigo original

Seleccione el cdigo.
Haga clic en .

Lneas de ajuste como comentarios.


Para definir las lneas a la normalidad.
Seleccione las lneas y haga clic en .

4.2.6 Marcadores
Puede configurar 'Favoritos' en todas partes en el cdigo y saltar hacia delante y hacia atrs entre estos
marcadores.
Para definir un marcador, coloque el cursor en el
lnea deseada, 12 en este ejemplo.
Haga clic en .
El signo del marcador se muestra en la izquierda
margen.
Para eliminar un marcador, coloque el cursor
en la lnea y haga clic en
Haga clic en

para avanzar al siguiente marcador.

Haga clic en

para saltar hacia atrs al marcador anterior.

En

men puede eliminar todos los marcadores

4 El IDE \/ 4.2 Cdigo rea

57

Basic4Android Gua del principiante

4.2.7 Sangra
Una buena prctica es usar la sangra de las piezas de cdigo.
Por ejemplo para subrutinas, bucles, estructuras, etc..
Este cdigo es difcil de leer porque el
estructura del cdigo no es obvia.

Este cdigo es mucho ms fcil de leer,


la estructura del cdigo es de
evidencia.
Un valor de tabulacin de 2 para la
sangra es un buen valor.

Ejemplo con un
sangra de 4
Personalmente, prefiero un valor
2.

4 El IDE \/ 4.2 Cdigo rea

58

Basic4Android Gua del principiante

Todo bloques de cdigo pueden aplicarse sangra hacia adelante y hacia atrs a la vez.
Cdigo original

Seleccione el bloque de cdigo.


Haga clic en .
Todo el bloque ha movido una tabulacin a la
derecho.
Para mover un bloque a la izquierda.
Seleccione el cdigo y haga clic en .

El valor de la sangra puede cambiarse en el men Herramientas.

Introduzca el valor y haga clic en

4 El IDE \/ 4.2 Cdigo rea

59

Basic4Android Gua del principiante

4.2.8 Autocompletar
Una herramienta muy til es la funcin de Autocompletar.
Ejemplo:
Djenos escribir lblN
Pulse Ctrl + espacio o haga clic en

Todas las variables, opiniones y nombres de parmetro


comienzo con las cartas ya escritas son
se muestra en un men emergente con la ayuda en lnea
para la variable resaltada, ver o
nombre del parmetro.
Elegir lblNumber1 Presione retorno.
Para elegir lblNumber2 Oprima la tecla menos
flecha y presione retorno.

Se completa el nombre seleccionado.

Despus de presionar \".\" todos los parmetros y mtodos son


muestra en un men emergente.

Al seleccionar un elemento, el
ayuda interna se muestra
Pulsando arriba o abajo
las flechas selecciona la anterior
o procede con su ayuda.
Presionando un personaje actualiza
la lista y muestra la
a partir de parmetros
ese carcter.
La mejor forma de aprenderlo es 'jugar' con ella.

4 El IDE \/ 4.2 Cdigo rea

60

Basic4Android Gua del principiante

Una segunda funcin de Autocompletar permite crear subrutinas de evento.


Ingrese la palabra Sub + un carcter en blanco.

Presiona Tab.

Seleccione el tipo de botn en nuestro ejemplo.

Seleccione el tipo, haga clic en nuestro ejemplo.

Se genera el marco de la subrutina.


Modificar 'EventName' a la EventName del botn, 'bntOK' en nuestro caso.

La rutina est lista.

4 El IDE \/ 4.2 Cdigo rea

61

Basic4Android Gua del principiante

4.2.9 Saltar a una subrutina


A veces resulta til pasar de una llamada de subrutina a la definicin de subrutina.
Esto puede realizarse fcilmente:

Seleccione el texto de la llamada de subrutina.

Haga clic con el botn derecho sobre el texto selecciona

Haga clic en declaracin Goto Sub

Y t ests all.

4 El IDE \/ 4.2 Cdigo rea

62

Basic4Android Gua del principiante

4.2.10 Destacando las ocurrencias de palabras


Al seleccionar una palabra, sta se resalta en azul oscuro y son todas las ocurrencias en el cdigo
resaltado en azul claro y en el scrollview del lado derecho.
Con el deslizador puede subir o bajar el cdigo para ir a las otras ocurrencias.

Lo mismo ocurre con los puntos de interrupcin.

4 El IDE \/ 4.2 Cdigo rea

63

Basic4Android Gua del principiante

4.2.11 Depuracin
Para permitir la depuracin le debe activar la opcin de depuracin en la parte superior del IDE.

Si se selecciona esta opcin el cdigo compilado contendr cdigo de depuracin.


El cdigo de depuracin permite el IDE conectar con el programa y revsela mientras se ejecuta.
Cuando se inicia el programa, esperar hasta 10 segundos para el IDE conectar. Generalmente el IDE
se conectar inmediatamente. Sin embargo, si ejecuta el programa manualmente desde el telfono, ver
se espera.
El nombre del archivo compilado APK terminar con _DEBUG.apk. Usted no debe distribuir esta apk
archivo que contiene el cdigo de depuracin que aade una sobrecarga significativa. Para distribuir archivos
debe seleccionar la opcin de liberacin.
Cuando ejecutamos el programa con la opcin de depuracin, el IDE abrir el mdulo de depurador en la
parte inferior de la pantalla:

Notas sobre el depurador:


Se omitirn los puntos de interrupcin en los siguientes subs: Globals, Process_Globals y
Activity_Pause.
Servicios - puntos de interrupcin que aparecen despus de una llamada a StartService ser ignorada. Puntos de inter
en Service_Create y Service_Start se pone en pausa el programa para un tiempo especfico
(aproximadamente 12 segundos). Esto es para evitar el OS desde matando el servicio.
Eventos que se ejecutar el fuego cuando el programa est en pausa. Puntos de interrupcin del cdigo en el evento
se omitir (slo cuando el programa ya est en pausa).
Los datos enviados desde el dispositivo al IDE est limitados en tamao. Cadenas largas pueden truncarse.
Cuando se ejecuta el depurador, el IDE es de slo lectura. El usuario no puede cambiar cualquiera de los
texto del programa.
Las dos utilidades principales para la depuracin son:

Puntos de interrupcin - puede marcar lneas de cdigos como los puntos de interrupcin. Esto se hace pulsando sobre la zona
izquierda de la lnea.
El programa se detendr cuando llegue a un punto de interrupcin y le permitir inspeccionar el estado actual.

4 El IDE \/ 4.2 Cdigo rea

64

Basic4Android Gua del principiante

Registro - la ficha de registros en el panel de la derecha es muy til. Muestra mensajes relacionados con la
ciclo de vida de componentes y tambin pueden mostrar los mensajes que se imprimen con la palabra clave de registro. Usted
debe pulsar en el botn Conectar para conectarse a los registros del dispositivo. Tenga en cuenta que hay un filtro
casilla de verificacin. Cuando se registra slo ver mensajes relacionados con su programa. Cuando es
que ver todos los mensajes que se ejecutan en el sistema. Si le surgen un error y
no veo ningn mensaje relevante en el registro, vale desmarcar la opcin de filtro y buscando
un mensaje de error.
Tenga en cuenta que el registro es mantenido por el dispositivo. Cuando se conecte a un dispositivo tambin ver
mensajes anteriores.
Para distribuir el proyecto se debe compilar con:
Relase
El cdigo de depurador no se agregar al archivo apk.
Liberacin (ofuscado)
El cdigo de depurador no se agregar al archivo apk.
Pero el archivo de programa ser modificado, ver abajo.
Basic4android v1.8 incluye una nueva caracterstica de ofuscacin de cdigo.
Durante la compilacin Basic4android genera cdigo Java que luego se compila con Java
compilador y convertir en Dalvik (formato de cdigo de bytes de Android).
Existen herramientas que permiten la descompilacin del cdigo de bytes de Dalvik en cdigo Java.
El propsito de ofuscacin es hacer que el cdigo descompilado menos legible, ms difcil de entender y
hacen ms difcil extraer cadenas como desarrollador cuenta claves.
Es importante entender cmo funciona el Ofuscador.
El Ofuscador hace dos cosas:

Ofuscacin de cadenas
Cualquier cadena escrita en Process_Globals sub (y slo en este sub) ser ofuscado, hacindola mucho
ms difcil de extraer claves importantes. Las cadenas son defuscated en tiempo de ejecucin.
Tenga en cuenta que varias teclas se utilizan durante la ofuscacin, incluyendo el nombre del paquete, el nombre de la versin
Cdigo de versin. Modificar estos valores con el editor de manifiesto se romper el proceso de defuscation.
Cambiar el nombre de variables
Los nombres de las variables globales y subs se convierten en cadenas sin sentido. Las variables locales
no se ven afectados, como sus nombres se pierden de todas formas durante la compilacin.
No se cambia el nombre de los siguientes identificadores:
-Identificadores que contienen un carcter de subrayado (requiere para los controladores de eventos).
-Subs que aparecen en las declaraciones de CallSub. Slo si el nombre de sub aparece como una cadena esttica y luego la
identificador se mantendr como est.
-Nombres diseador de vistas.
Consejo: Si, por alguna razn, necesita evitar el Ofuscador para cambiar el nombre de un identificador debe agregar
un guin bajo en el nombre del identificador.
Se crear un archivo llamado ObfuscatorMap.txt en la carpeta de objetos. Este archivo asigna el
originales nombres de identificadores para los nombres ofuscados. Esta asignacin puede ser til para analizar accidente
informes.
Activar el Ofuscador
Basic4android versin 1.8 hace ms simple elegir el modo de compilacin.

4 El IDE \/ 4.2 Cdigo rea

65

Basic4Android Gua del principiante

4.2.12 Puntos de interrupcin

Haciendo clic en una lnea en el margen izquierdo, agrega un punto de interrupcin. Cuando se ejecuta el programa se deteng
primer punto de interrupcin.

Ejecutar el programa, el programa se detiene en el punto de interrupcin y el IDE se parece a continuacin. El punto de interr
lnea es resaltada en amarillo.

En la parte inferior del IDE encontrar otra informacin.

Depurador est conectado.


Haga doble clic para soltar el Debuger.
Nombre de la rutina donde se detuvo el programa.
Nueva rutina en lnea 52.
Llamar a la rutina de la rutina de nueva.
Rutina de Activity_Create en la lnea 24.
Al hacer clic en estos enlaces salta el cursor a la lnea dada.

4 El IDE \/ 4.2 Cdigo rea

66

Basic4Android Gua del principiante

Continuar con la ejecucin de cdigo


equivalente a F5.
Contina la ejecucin hasta el final o el siguiente punto de quiebre.
Paso a la siguiente lnea
equivalente a F8.
Contina la ejecucin a la lnea siguiente, muy interesante durante la depuracin para ver la
flujo del programa real y la evolucin de los valores de las variables.
Pausa el cdigo tan pronto como sea posible.
Detener el programa actual
equivalente a F11.
Tambin detiene el programa en el emulador.
Detener el programa en el emulador no termina en el IDE!
Variables globales.
Lista de la global
objetos y variables
utilizado por el programa
con sus valores y
parmetros.

Ejemplos:
btnAction: tipo = botn izquierdo = Top 190 = 0 Width = altura 115 = 55 Tag = texto vaco = OK
Nmero1 = 6
Variables locales.
Ninguno en este ejemplo.

Flotando con el ratn sobre una variable muestra


su valor.

Flotando con el ratn sobre una vista, sus parmetros como muestra en la lista.

4 El IDE \/ 4.2 Cdigo rea

67

Basic4Android Gua del principiante

Debemos ejecutar el programa paso a paso:


Establecer un punto de interrupcin en la lnea de 50.
Haga clic en

para ejecutar el programa o presione F5.

El programa se detendr en la lnea de 50.

Los valores de los dos nmeros en el


Ventana de variables globales,
ha sido reducido para mostrar slo los dos nmeros.

Haga clic en F8.


El programa ejecuta la siguiente lnea de cdigo.

Ha cambiado el valor de Nmero1!


Haga clic en F8.
El programa ejecuta la siguiente lnea de cdigo.

El valor de nmero2 ha cambiado!

4 El IDE \/ 4.3 fichas

4.3

68

Basic4Android Gua del principiante

Fichas

Hay 4 fichas en la parte inferior derecha del IDE que


mostrar la siguiente informacin.

4.3.1 Mdulo de y subrutina listas


Todos los mdulos del proyecto y todas las subrutinas del mdulo seleccionado aparecen en dos listas en el
derecho del IDE.
Lista de mdulos
Al hacer clic en un mdulo muestra su cdigo en el rea de cdigo.
Lista de subrutina del mdulo seleccionado
Al hacer clic en una subrutina muestra su cdigo en medio de
el rea de cdigo.
En el IDE, en la esquina inferior derecha.

4 El IDE \/ 4.3 fichas

69

Basic4Android Gua del principiante

4.3.2 Archivos
Esta ventana muestra todos los archivos que se han agregado al proyecto.
Estos archivos se guardan en la carpeta Files.DirAssets.
Estos pueden ser cualquier tipo de archivos: diseos, imgenes, textos, etc..

Haga clic en
para agregar archivos a la lista.
Se accede a los archivos de esa carpeta con
File.DirAssets.

En el IDE, en la esquina inferior derecha.

Verificacin de uno o ms archivos permite la


botn.
Al hacer clic en este botn elimina los archivos seleccionados de la
lista de la carpeta de archivos del proyecto.

Asegrese de tener una copia de los archivos que quitar, porque ellos se quitan los archivos
carpeta, pero no se transfieren a la papelera de reciclaje, que significa que son definitivamente perdidos si no
tener una copia.
Ver captulo archivos para manejo de archivos.

4 El IDE \/ 4.3 fichas

70

Basic4Android Gua del principiante

4.3.3 Registros
Visualizacin de comentarios de registro generado por el programa cuando se est ejecutando.
Aadimos las dos lneas 51 y 53 en el programa 'SecondProgram' en la rutina del 'Nuevo'.

Ejecute el programa.
Haga clic en

para conectar el registrador.


En la ventana vemos el flujo de la
programa.
Crear actividad (principal), isFirst = true
Primero mensaje de registro
Segundo mensaje de registro
Reanudacin de la actividad (principal)

En el IDE, en la esquina inferior derecha.

Cuando se activa el filtro slo ver mensajes relacionados con su programa. Cuando se
no est marcada, ver todos los mensajes que se ejecutan en el sistema. Si le surgen un error
y no ve ningn mensaje relevante en el registro, merece la pena desmarcar la opcin de filtro y mirando
para un mensaje de error
Haga clic en

limpiar la ventana de registros.

Si todava se est ejecutando el depurador, seleccione depuracin > Stop en el men IDE, presione F11 o haga clic en
por lo que se puede editar el cdigo.

4 El IDE \/ 4.3 fichas

71

Basic4Android Gua del principiante

4.3.4 Libs
Lista de las bibliotecas disponibles que se pueden utilizar en el proyecto.
Compruebe las bibliotecas que usted necesita para su proyecto.
Asegrese de que tiene la ltima versin de las bibliotecas.

En el IDE, en la esquina inferior derecha.

La documentacin de las bibliotecas puede encontrarse aqu:

Basic4android - Android programacin con el diseador de Gui

5 Tamaos de pantalla y resoluciones

72

Basic4Android Gua del principiante

Tamaos de pantalla y resoluciones

Existen muchos tamaos de pantalla diferentes con diferentes resoluciones y densidades de pixel.
Debemos hacer la diferencia entre los siguientes parmetros.
-Tamao de pantalla fsica
Ex: 3,6 '' diagonal
-Resolucin en pxeles
Ex: 320 \/ 480
-Pxeles densidad por pulgada Ex: 160
La pantalla estndar es 320 \/ 480 pxeles, densidad 160 pxeles\/pulgada.
Existen otras pantallas con casi el mismo tamao fsico, pero con una mayor resolucin para
ejemplo 480 \/ 640 pxeles con una densidad de 240 pxeles\/pulgada.
Tabletas tienen mayor tamao fsico pero pueden tener una densidad similar a la pantalla estndar.
Ejemplo: 7.2 '' pantalla diagonal, 640 \/ 960 pxeles y una densidad de 160 pxeles\/pulgada.
Una lista no exhaustiva de las pantallas:
Diagonal
3.6
3.6
3.9
3.6
7.2
10

Resolucin
320 \/ 480
480 \/ 720
480 \/ 800
240 \/ 320
640 \/ 960
720 \/ 1280

Densidad
160
240
240
120
160
160

Escala
1
1.5
1.5
0.75
1
1

W \/ H Ratio
3 \/ 2
3 \/ 2
5 \/ 3
4 \/ 3
3 \/ 2
16 \/ 9

Comparemos las siguientes resoluciones:


1)
320 \/ 480 \/ 160
pantalla ~3.5'' densidad estndar 160
2)
480 \/ 800 \/ 240
pantalla ~3.5'' densidad 240
3)
640 \/ 960 \/ 320
pantalla ~3.5'' densidad 320
4)
640 \/ 960 \/ 160
~ 7'' pantalla densidad estndar 160
En los casos 1) 2) y 3) el tamao fsico de las pantallas es iguales pero la densidad de los pxeles es
diferentes.
En los casos 1) y 4) las densidades son los mismos pero las dimensiones fsicas de la pantalla en el caso 4)
son el doble de los de la pantalla en el caso 1) dando as una superficie cuatro veces mayor.
Veamos ahora el tamao de un botn con 80 \/ 80 dip, su tamao fsico.
dips
pxeles
pulgadas
1)
80
80
0.5
2)
80
120
0.5
2)
-80
0,375
dimensin en pxeles no en dips
3)
80
160
0.5
3)
-80
0.25
dimensin en pxeles no en dips
4)
80
80
0.5
DIP = pxel de densidad independiente
Es posible generar especiales emuladores con tallas especiales, densidades y resoluciones.

5 Tamaos de pantalla y resoluciones

73

Basic4Android Gua del principiante

Un mismo archivo de diseo puede encajar en diferentes resoluciones de pantalla, pero con algunas restricciones.
Utilizaremos el programa TestLayouts para probar el mismo diseo con diferentes resoluciones de pantalla.
El cdigo fuente se encuentra en el directorio de \\SourceCode\\TestLayouts de <Guide>.
Las diferentes resoluciones son:
Pantalla
resolucin
240 \/ 320
320 \/ 480
480 \/ 800

Densidad

H \/ W ratio

120
160
240

4 \/ 3
3 \/ 2
5 \/ 3

Altura de Eqivalent
pxeles
360
480
720

Pxel diff.
-40
0
+ 80

La resolucin de referencia es de 320 \/ 480 con una densidad de 160.


Si calculamos, para las otras dos resoluciones, la altura equivalente utilizando la misma proporcin de H\/W obtenemos
la altura equivalente en pxeles y la diferencia en pxeles.
Esto significa que con el mismo archivo de diseo para todas las tres resoluciones habr 40 pxeles que faltan
con la resolucin 240\/320 y 80 pxeles adicionales con la resolucin de 480\/800.

El diseo original de la densidad estndar de 320\/480 pxeles 160


Emulador es el siguiente.
Para realizar las pruebas necesitamos tres emuladores:
-320 \/ 480 densidad 160
-240 \/ 320 densidad 120
-480 \/ 800 densidad 240
Si no tienes estos emuladores, debe crear en la AVD
Manager. Busque aqu para generar un emulador.

Y el cdigo es:

Tenga en cuenta que las lneas 23 y 24 son comentadas!

5 Tamaos de pantalla y resoluciones

74

Basic4Android Gua del principiante

Pruebas con los tres emuladores con diferentes resoluciones y diferentes densidades.

480 \/ 800 240

320 \/ 160 480

240 \/ 120 320

Los tamaos de imagen son reducidos por un factor de 0,5 para fcil comparacin.
Lo que vemos:
- con la resolucin estndar, la imagen en el emulador es igual al diseo original.
- con la resolucin 240\/320 vemos que hay los 'esperados' 40 pxeles que faltan.
- con la resolucin de 480\/800, vemos que hay el pxel extra 80 'esperado'.
Los nmeros de los elementos de ListView son las mismas para todos los tres resoluciones.

5 Tamaos de pantalla y resoluciones

75

Basic4Android Gua del principiante

Segunda prueba con lneas 23 y 24 activado.

En la lnea 23 calculamos la parte superior del panel pnlToolBox segn la altura de la pantalla.
En lnea 24 calculamos la altura de ListView segn la parte superior de la pnlToolBox.

Lo que vemos:
- con la resolucin estndar, la imagen en el emulador es todava igual al diseo original.
- con la resolucin 240\/320, vemos que los botones estn en la parte inferior de la pantalla, pero la
Altura de ListView se acorta.
- con la resolucin de 480\/800 vemos que los botones estn en la parte inferior y ListView
mayor.
Los nmeros de los elementos de ListView son diferente en los tres diseos porque la altura de ListView
se ha adaptado a la altura de la pantalla relativa diferente.
En la primera prueba, el nmero de elementos en el control ListView eran iguales!
Estos ejemplos muestran que no es fcil tener un diseo para diferentes resoluciones de pantalla.
En el ejemplo anterior era relativamente fcil porque la vista en el medio es fcilmente ajustable.

5 Tamaos de pantalla y resoluciones

76

Basic4Android Gua del principiante

Incluso cuando carga el archivo de diseo en los emuladores de tres resoluciones de 480 \/ 800, 320 \/ 480 y
240 \/ 320 pxeles el diseo est estirada o reducido segn el tamao de la pantalla, pero vemos naturalmente
tambin los extras y faltantes pxeles dependiendo de la altura de la pantalla relativa diferente.
El sistema de Android OS autoscale ajusta la izquierda, arriba, anchura, altura, FontSize y otros
los parmetros con la escala de factor, pero no cambia de tamao las posiciones verticales ni las alturas de la
vistas proporcionales a la altura de la pantalla. Lo mismo es vlido para el ancho en el modo paisaje.

5 Tamaos de pantalla y resoluciones

5.1

77

Basic4Android Gua del principiante

Funciones especiales como 50% x, 50dip

Hay funciones especiales para accomode diferentes tamaos de pantalla y resolucin.

5.1.1 PerXToCurrent, PerYToCurrent - 50% x


PerXToCurrent (porcentaje como Float)

50% x

PerXToCurrent(50) significa el 50% del ancho de la actividad.

Puede escribirse como un acceso directo: 50% x.


50% x es igual a Activity.Width * 0.5

PerYToCurrent(30) significa el 30% de la altura de la actividad.

Puede escribirse como un acceso directo: 30% y.


30% y es igual a Activity.Height * 0,3

5.1.2 DipToCurrent - 50dip


DipToCurrent (longitud como Int)

50dip

DipToCurrent calcula una dimensin con la longitud dada segn la escala de la actual
dispositivo.
DipToCurrent(50) es igual a 50 * DeviceScale
Puede escribirse como un acceso directo: 50dip pxeles independientes de densidad
La resolucin 'estndar' es 160 dpi (puntos por pulgada) y escala 1.
Sin espacios entre el nmero y dip!
Si tenemos un botn con una dimensin de escala estndar de 50 * 50 pxeles, para definir sus dimensiones nos
debe set Button1.Width = 50dip y Button1.Height = 50dip.
Dependiendo de la escala, la dimensin del botn ser:
Escala
Pxeles
1
50 * 50
1.5
75 * 75
Ejemplo:

Dim Button1 As botn


Button1.Initialize(\"Button1\")
Activity.AddView (Button1, 20% x, 30% y, 100dip, 50dip)

Los valores de las propiedades en el diseador de izquierda, superior, ancho y altura son considerados como
valores de la DIP.

5 Tamaos de pantalla y resoluciones

5.2

78

Basic4Android Gua del principiante

Trabajar con diferentes tamaos de pantalla \/ nmero de diseos

Con el gran nmero de dispositivos, con diferentes tamaos de pantalla y resoluciones, disponibles en el mercado
resulta ms complicado disear un proyecto que se ve bonito en todos los dispositivos disponibles.
No hay ninguna regla universal para manejar este problema, depende de:
Qu tipo de proyecto est diseando.
Qu dispositivos y la pantalla le tamaos son certero.
Lo que desea mostrar en las pantallas diferentes.
Un mismo diseo pero estirada segn los tamaos de pantalla.
Variantes de diseo diferente para los diferentes tamaos, en una pantalla grande que pueden ser ms vistas
muestra al mismo tiempo.
Resumen de los tamaos de pantalla fsico diferente, cada tamao puede tener diferentes resoluciones, densidades
escalas y proporciones.
resolucin escala de densidad relacin de aspecto
~ 3.0'' - 4.0 ''
320 \/ 240
120 0.75 4 \/ 3 1,333
480 \/ 320
160 1
3 \/ 2 1.5
640 \/ 480
240 1.5
4 \/ 3 1,333
800 \/ 480
240 1.5
5 \/ 3 1.667
854 \/ 480
240 1.5
16 \/ 9 1,78
960 \/ 540
240 1.5
16 \/ 9 1,78
960 \/ 640
240 1.5
3 \/ 2 1.5
1280 \/ 720 320 2
16 \/ 9 1,78
~
5.5
''

1280 \/ 800 240 1.5


8 \/ 5 1.6
~
7
''

1024 \/ 600 160 1


1.71
1280 \/ 800 160 1
8 \/ 5 1.6
~ 10 ''
1024 \/ 600 160 1
1.71
1024 \/ 768 160 1
4 \/ 3 1,333
1280 \/ 800 160 1
8 \/ 5 1.6
Dependiendo de lo que desea que aparezca en las pantallas diferentes puede:
Diseo de variantes de diseo diferente.
Dos diseo variantes (vertical y horizontal) para cada dimensin.
Las vistas se redimensionan automticamente para las diferentes densidades.
Sin embargo podra necesita tener en las proporciones de diferente anchura y altura de cuenta (proporciones),
Este ajuste puede hacerse en el cdigo o necesitara dos variantes de diseo ms.
%x , %y y DIP dimensiones.
Calcular todas las dimensiones de vista y posiciones en el cdigo mediante
Para la comparacin:
Una pantalla 5.5'' tiene una superficie de aproximadamente 2,5 veces ms grande que una pantalla de 3,5 ''.
Una pantalla de 7'' tiene una superficie de aproximadamente 4 veces ms grande que una pantalla de 3,5 ''.
Una pantalla de 10'' tiene una superficie de aproximadamente 9 veces ms grande que una pantalla de 3,5 ''.

5 Tamaos de pantalla y resoluciones

79

Basic4Android Gua del principiante

Los ejemplos siguientes muestran un mismo desplegado de diseo en el cdigo para ajustar los tamaos de pantalla diferente
El cdigo fuente es OneLayoutStreched, las imgenes son imgenes de emulador.

~3.5'' 240 \/ 320

~3.5'' 320 \/ 480

7 '' 800 \/ 1280 \/ 160

~3.5'' 480 \/ 800

~5.5'' 800 \/ 1280 \/ 240

10 '' 800 \/ 1280 \/ 160

Probablemente no es la mejor solucin para tener el mismo desplegado de diseo para todos los tamaos de pantalla.
Podra ser ms interesante mostrar ms vistas en las pantallas ms grandes.

5 Tamaos de pantalla y resoluciones

80

Basic4Android Gua del principiante

Cdigo para comprobar el tipo de dispositivo:


Sub CheckDeviceType
' comprobar el tipo de dispositivo utilizado para definir tamaos de texto
' debe completarse si es necesario
LV = GetDeviceLayoutValues
Seleccione lv.Escala
Caso 2
DeviceType = \"Smartphone 5\"
TextSizeRatio = 1.5
Caso 1.5
Si lv.Ancho > 1100 entonces
DeviceType = \"Tableta de 7\"
TextSizeRatio = 2
Else
DeviceType = \"Smartphone 3.5\"
TextSizeRatio = 1
End If
Caso 1
Si lv.Ancho > 1100 entonces
DeviceType = \"Tablet 10\"
TextSizeRatio = 3
Else If lv.Ancho < 600 entonces
DeviceType = \"Smartphone 3.5\"
Else
DeviceType = \"Tableta de 7\"
TextSizeRatio = 2
End If
End Select
End Sub

Parte del cdigo para establecer las dimensiones de la vista.

ArgumentException: The incoming token has expired. Get a new access token from the Authori
ArgumentException: The incoming token has expired. Get a new access token from the Auth
Si Activity.Width > Activity.Height entonces
WB = 100% y \/ 4
pnlToolbox.Left = 100% x - wb
pnlToolbox.Width = wb
pnlToolbox.Height = 100% y
pnlToolbox.Top = 0
btnTest1.Left = 0
btnTest1.Width = wb
btnTest1.Top = 0
btnTest1.Height = wb
.
lblTitle.Left = 10% x
lblTitle.Width = 80% x - wb
lblTitle.Top = 0
lblTitle.Height = 100% y \/ 8
lstTest.Left = 5% x
lstTest.Width = 90% x - wb
lstTest.Top = lblTitle.Height
lstTest.Height = 100% y - lstTest.Top
lstTest.TwoLinesLayout.Label.Height = 12% y
lstTest.TwoLinesLayout.Label.Top = 0
lstTest.TwoLinesLayout.SecondLabel.Height = 10% y

1.2 Instalacin de emulador Android

81

Basic4Android Gua del principiante

lstTest.TwoLinesLayout.SecondLabel.Top = 12% x
lstTest.TwoLinesLayout.ItemHeight = 24% y
Else
WB = 100% x \/ 4
pnlToolbox.Left = 0
pnlToolbox.Width = 100% x
pnlToolbox.Height = wb
pnlToolbox.Top = 100% y - wb
btnTest1.Left = 0
btnTest1.Width = wb
btnTest1.Top = 0
btnTest1.Height = wb
.
lblTitle.Left = 10% x
lblTitle.Width = 80% x
lblTitle.Top = 0
lblTitle.Height = 100% x \/ 8
lstTest.Left = 5% x
lstTest.Width = 90% x
lstTest.Top = lblTitle.Height
lstTest.Height = pnlToolbox.Top - lstTest.Top
lstTest.TwoLinesLayout.Label.Height = 12% x
lstTest.TwoLinesLayout.Label.Top = 0
lstTest.TwoLinesLayout.SecondLabel.Height = 10% x
lstTest.TwoLinesLayout.SecondLabel.Top = 12% x
lstTest.TwoLinesLayout.ItemHeight = 22% x
End If
btnTest1.Text = \"Prueba 1\"
btnTest1.TextSize = 16 * TextSizeRatio
btnTest2.Text = \"Prueba 2\"
btnTest2.TextSize = 16 * TextSizeRatio
btnTest3.Text = \"Prueba 3\"
btnTest3.TextSize = 16 * TextSizeRatio
btnTest4.Text = \"Prueba 4\"
btnTest4.TextSize = 16 * TextSizeRatio
lblTitle.Text = \"Prueba de diseo\"
lblTitle.TextSize = 20 * TextSizeRatio
lstTest.TwoLinesLayout.Label.TextSize = 20 * TextSizeRatio
lstTest.TwoLinesLayout.Label.Gravity = Gravity.CENTER_VERTICAL
lstTest.TwoLinesLayout.Label.Color = Colors.Blue
lstTest.TwoLinesLayout.SecondLabel.TextSize = 16 * TextSizeRatio
lstTest.TwoLinesLayout.SecondLabel.Gravity = Gravity.CENTER_VERTICAL
lstTest.TwoLinesLayout.SecondLabel.Color = Colors.Green
End Sub

5 Tamaos de pantalla y resoluciones

82

Basic4Android Gua del principiante

En los siguientes ejemplos podemos ver la pantalla de una cuadrcula con botones. Las dimensiones del botn fsico son
casi lo mismo. El cdigo fuente es CodeLayout.

3.5''

5.5''

10''

El cdigo fuente:
Dim I, j, k, nx, ny, x 0, x 1, x 2 como Int
x 0 = 4dip
x 1 = 60dip
x 2 = x 0 + x 1
NX = piso (Activity.Width\/x 2) - 1
NY = piso (Activity.Height\/x 2) - 1
k = 0
Para j = 0 A ny
Para i = 0 To nx
k = k + 1
Dim btn como botn
btn.Initialize(\"Btn\")
btn.Color = Colors.Red
Activity.AddView (btn, x 0 + i * x 2, x 0 + j * x 2, x 1, x 1)
btn.Texto = k
btn.TextSize = 20
Siguiente
Siguiente

5 Tamaos de pantalla y resoluciones

83

Basic4Android Gua del principiante

Si desea mostrar ms vistas en las pantallas ms grandes debe definir dos variantes de diseo (uno para
Retrato y un paisaje) para cada tamao de pantalla y resolucin. Esto puede ser bastante
combersome.
Compromisos podran ser utilizado, definir los diseos parcialmente en los archivos de diseo y parte en el cdigo.
La adaptacin de diferentes proporciones de aspecto podra hacerse en el cdigo en lugar de diseo independiente
variantes.
Como ya se mencion, no hay ninguna regla universal, la solucin depende de diferentes factores.
Como un desarrollador debe definir sus necesidades y requerimientos en funcin de:
Qu tipo de proyecto est diseando.
Qu tipo de datos que usted est recibiendo tratamiento, visualizacin, edicin, etc..
Qu dispositivos y la pantalla le tamaos son certero.
Lo que desea mostrar en las pantallas diferentes.
Un mismo diseo pero estirada segn los tamaos de pantalla.
Variantes de diseo diferente para los diferentes tamaos, en una pantalla grande que pueden ser ms vistas
muestra al mismo tiempo.

5 Tamaos de pantalla y resoluciones

5.3

84

Basic4Android Gua del principiante

Orientaciones de pantalla

Pueden definirse tres valores de orientaion de pantalla diferentes:


Retrato slo
Paisaje slo
Ambos
Estas orientaciones pueden ser bien definidas:
En el IDE y son vlidas para la actividad actual.
Pueden definirse diferentes orientaciones para diferentes actividades.
En el men Proyecto \/ orientaciones compatibles

En el cdigo con la librera de telfono


Paisaje

Phone1.SetScreenOrientation(0)

Retrato

Ambos

Phone1.SetScreenOrientation(1)
Phone1.SetScreenOrientation(-1)

6 El emulador

85

Basic4Android Gua del principiante

El emulador

El emulador o dispositivo Virtual es un programa que simula dispositivos en el PC.

6.1

Lanzar un emulador

Para iniciar un emulador, haga clic en el IDE en el men Herramientas en ejecutar el administrador de AVD.
.

Seleccione el emulador deseado.


El retrato emulador, en este caso. Haga clic en

Haga clic en

6 El emulador

86

Espere hasta que est listo el emulador, esto tomar bastante tiempo.

Basic4Android Gua del principiante

6 El emulador

6.2

87

Basic4Android Gua del principiante

Crear un nuevo emulador

Agreguemos un nuevo emulador con una resolucin de 480 \/ 800 pxeles, densidad 240.
En el administrador de AVD

Haga clic en

Introduzca el nombre emulador 480_800


Seleccione Android 2.2 API nivel 8
Introduzca el 16.

Entre 480 y 800

Haga clic en

Haga clic en

6 El emulador

88

Basic4Android Gua del principiante

Cambio de 160 a 240.

Haga clic en

Haga clic en
Se aade el nuevo emulador.

6 El emulador

6.3

89

Basic4Android Gua del principiante

Problemas de emulador

Lamentablemente, el emulador es bastante lento y a veces un dolor.


Cuando se ejecute el programa o conectar con el emulador desde el diseador, a veces se quiere
Vea el siguiente mensaje.
Tienes dos opciones:
-S (Oui) para cancelar el proceso.
-No (no) continuar el proceso.

Mayora de las veces cuando se hace clic , el proceso tendr xito.


Sin embargo, incluso despus de que hace clic en

, a veces ver siguiente mensaje.

En la mayora de los casos, si se ejecuta el programa una vez ms, se establecer la conexin con el emulador
y funcionar correctamente.
Esto suele ocurrir cuando el emulador todava se est ejecutando un programa o si el emulador es todava
conectado a otro proyecto. En este caso, presione el botn back hasta llegar a la casa del emulador
pantalla e intntelo de nuevo.
Si esto ocurre por segunda vez, cerrar el emulador actual y volver a ejecutarla desde la AVD
Manager.
Si el primer mensaje anterior aparece con demasiada frecuencia puede aumentar el valor de tiempo de espera del proceso.

6 El emulador

90

Basic4Android Gua del principiante

6.3.1 Proceso timeout


En el men de herramientas IDE.

Establezca el parmetro de ProcessesTimeoutSeconds en un valor ms alto.


Muchas establecerlo a 45 segundos.

6 El emulador

6.4

91

Basic4Android Gua del principiante

Intercambio de archivos con el PC

Para obtener acceso a archivos en el emulador puede utilizar al Dalvik Debug Monitor.
El nombre es ddms.bat y se encuentra en la carpeta donde copi el SDK de Android.
Ejemplo: C:\\Android\\android-sdk-windows\\tools.
Asegrese de que est ejecutando el emulador.
Ejecute el archivo ddms.bat:

Aparecer una ventana como esta.

Espere un momento.

Se mostrar el Dalvik Debug Monitor.

6 El emulador

92

Basic4Android Gua del principiante

En la esquina superior izquierda debe ver un


referencia en el emulador.
Seleccionarlo.

Luego en el men dispositivo


Seleccione File Explorer...

El explorador de archivos del dispositivo ser displayd:

Ver varios
carpetas.
En data\\app te vas
encontrar aplicaciones.

mnt\\sdcard
es la
DirRootExternal
carpeta.
En el ejemplo de la
archivo persons.db es un
base de datos copiado en un
Programa B4A
DirAssets a
DirRootExternal.

6 El emulador

93

Basic4Android Gua del principiante

En la esquina superior izquierda ver tres iconos:

Extraiga el archivo de dispositivo, copia el archivo a la PC


Archivo en el dispositivo, copias de un archivo en el dispositivo de empuje
Elimina el archivo
Al hacer clic en cualquiera
o
muestra el explorador de archivos estndar de Windows para seleccionar el destino o
carpeta de origen para el archivo seleccionado.
Si no funciona el Dalvik Debug Monitor necesita agregar la ruta donde se encuentra el archivo ddms.bat
a las variables de entorno.
Desde el escritorio, haga clic en mi PC y haga clic en propiedades.
En la ventana Propiedades del sistema, haga clic en la ficha Avanzadas.
En la seccin de opciones avanzadas, haga clic en el botn Variables de entorno.
Finalmente, en la ventana de Variables de entorno (como se muestra a continuacin), resaltar la variable Path en
la seccin sistemas Variable y haga clic en el botn Editar (modificador). Agregar o modificar las lneas de ruta
con las rutas desea que el equipo tenga acceso a. Cada directorio diferente se separa con un
punto y coma como se muestra a continuacin.

7 B4A puente

94

Basic4Android Gua del principiante

Puente B4A

Hasta ahora existan dos mtodos para probar la aplicacin durante el desarrollo.
Usted puede ya sea trabajo con el emulador de Android o si el dispositivo admite la depuracin de la ADB, ests
puede conectarse a su dispositivo real.
El emulador de Android es muy lento en comparacin con un dispositivo real (especialmente con aplicaciones
instalacin).
Por lo tanto, en la mayora de los casos es ms conveniente trabajar con un dispositivo real.
Personalmente, estoy usando el emulador slo cuando se trabaja con el diseador visual.
Sin embargo, no todos los dispositivos admiten depuracin de ADB. Esta es exactamente la razn para la nueva B4AHerramienta de puente.
B4A-puente est formado de dos componentes. Un componente se ejecuta en el dispositivo y permite el segundo
componente que es parte del IDE para conectarse y comunicarse con el dispositivo.
La conexin se realiza a travs de una red (B4A-puente no puede funcionar si no hay ninguna red disponible).
Una vez conectado, B4A-puente admite todas las caractersticas IDE que incluyen: instalacin de aplicaciones,
Ver LogCat y el diseador visual.
Android no permite a las aplicaciones silenciosamente instalar otras aplicaciones, por lo tanto, al ejecutar su
aplicacin mediante B4A-puente, ver un cuadro de dilogo pidiendo su aprobacin.
Getting started with B4A-puente
1. En primer lugar necesita instalar B4A-puente en el dispositivo.
B4A-puente puede descargarse aqu: http:\/\/www.basic4ppc.com\/android\/files\/b4a_bridge.apk.
B4A-puente tambin est disponible en Android market. Buscar: B4A puente.
Tenga en cuenta que se necesita para permitir la instalacin de aplicaciones de \"Fuentes desconocidas\". Esto se hace
elegir la configuracin de la pantalla de inicio - administrar aplicaciones.
2. Ejecutar B4A-puente en su dispositivo. Mostrar una pantalla similar a:

Estado ser: a la espera de las conexiones.

7 B4A puente

95

Basic4Android Gua del principiante

3. En el IDE, elija Herramientas - B4A puente - conectar.


Debe ingresar la direccin IP que aparece en la pantalla del dispositivo.
La barra de estado en la parte inferior de la pantalla muestra el estado actual:

Eso es todo.
Cuando B4A-puente se conecta en primer lugar comprueba si la aplicacin diseador necesita ser actualizada. En
ese caso, primero instalar la aplicacin diseador.
B4A-puente sigue funcionando como un servicio hasta que usted oprima el botn Stop.
Usted siempre puede alcanzar mediante la apertura de la pantalla de notificaciones:

Pulsando en la notificacin se abrir la pantalla principal.


Como se mencion anteriormente, cuando se ejecuta una aplicacin deber aprobar la instalacin. Usted
normalmente se ver en las siguientes pantallas:

7 B4A puente

96

Basic4Android Gua del principiante

En el cuadro de dilogo anterior que debe elegir abrir para iniciar la aplicacin.
Si intenta instalar una aplicacin existente firmada con una clave diferente, la instalacin fallar (sin
cualquier mensaje significativo). Debe desinstalar primero la aplicacin existente. Ir a la pantalla de inicio
-Ajustes - aplicaciones - administrar aplicaciones - Elija la aplicacin - desinstalacin.
Una vez terminado desarrollando le debe pulsar el botn Stop para ahorrar batera.
Nota escrita con Basic4android B4A-puente.
El cdigo fuente est disponible aqu: http:\/\/www.basic4ppc.com\/forum\/basic...html#post45854

8 El diseador

97

Basic4Android Gua del principiante

El diseador

El diseador permite generar diseos con el emulador o un dispositivo real.

8. El diseador \/ 8.1 el men

8.1

98

Basic4Android Gua del principiante

El men

8.1.1 Men de archivo


Nuevo
Abierto

Se abre un nuevo diseo de vaco.


Abre un diseo existente.

Guardar
Guarda el diseo actual.
Guardar como...Guarda el diseo actual con un nuevo nombre.
Principal
Lista archivo de diseo, en este caso slo un archivo, 'Main'.

8.1.2 AddView men


Este men le permite seleccionar la vista que desea agregar en el
diseo actual en el dispositivo o el emulador.
Botn
Casilla de verificacin
EditText
ImageView
Etiqueta
ListView
Panel
ProgressBar
RadioButton
ScrollView
SeekBar
Spinner
TabHost
ToggleButton
Vista Web

agrega un botn
agrega una casilla de verificacin
agrega un EditText
agrega un ImageView
aade una etiqueta
agrega un control ListView
agrega un Panel
agrega un componente ProgressBar
agrega un componente RadioButton
agrega un Scrollview
agrega un SeekBar
agrega una Spinner
agrega un TabHost
agrega un ToggleButton
agrega una vista Web

8. El diseador \/ 8.1 el men

99

Basic4Android Gua del principiante

8.1.3 El men Herramientas


Generar los miembros

Generador de miembros

Traer al frente
Trae la vista seleccionada al frente
Enviar al fondo
Duplicar seleccionado Vista duplica la vista seleccionada
Quitar de la vista seleccionadaQuita la vista seleccionada
Cuadrcula de cambio Permite cambiar el tamao de la cuadrcula
Conectar al dispositivo se conecta el dispositivo o el emulador
Desconecte el dispositivo se desconecta el emulador o
el dispositivo.

Mostrar resumen diseador


Ejecutar ScriptEjecuta el cdigo de secuencia de comandos de las secuenci

8. El diseador \/ 8.2 herramientas

8.2

100

Basic4Android Gua del principiante

Herramientas

8.2.1 Generar miembros


Permite generar declaraciones Dim y marcos para subrutinas.
La herramienta de generar miembros permite para generar automticamente referencias y marcos de subrutina.

Haga clic en para abrir el generador.

Aqu encontramos todas las vistas en el diseo actual.


Verificamos todas las vistas y controlar el evento Click para el botn de btnAction.
Comprobacin de una vista
genera su referencia en la Globals Sub en el cdigo. Esto es
necesarios para que la vista reconoce y permite la funcin de Autocompletar.

Al hacer clic en un evento

Haga clic en

de una vista genera el marco Sub para este evento.

para generar las referencias y sub marco y

8. El diseador \/ 8.2 herramientas

101

Basic4Android Gua del principiante

8.2.2 BringTo frontal


Cuando vistas se solapan, lo oculto o
vista parcial de oculto puede ser llevado al frente.
Haga clic en la vista para traer al frente para seleccionarlo.
Haga clic en
para hacer frente a la vista seleccionada.

Esto es especialmente interesante con grandes paneles.

8.2.3 Enviar al fondo

lo contrario de traer al frente.

es

8.2.4 Duplicar vista seleccionada

Haga clic en la vista que desee duplicar a


seleccionarlo.
Haga clic en
para duplicar la vista.

La vista se duplica.

8. El diseador \/ 8.2 herramientas

102

Basic4Android Gua del principiante

8.2.5 Retire la vista seleccionada

Haga clic en la vista para quitar para seleccionarlo.


Haga clic en
para quitarlo.

Se ha quitado la vista.
Nota: Tenga cuidado, no se le pedir si usted
realmente desea eliminar de la vista.

8.2.6 Cuadrcula de cambio

La cuadrcula es una cuadrcula invisible con un tamao determinado. Tamao de la cuadrcula predeterminado es de 10 p
posiciones y dimensiones de una vista se ajustar a los valores en los pasos correspondientes al tamao de la cuadrcula.
Mover una vista se har en pasos iguales al tamao de la cuadrcula.

Haga clic en

Puede cambiar el tamao de la cuadrcula


el valor que desee.

8. El diseador \/ 8.3 Configuracin General

103

Basic4Android Gua del principiante

8.2.7 Conecte el dispositivo o el emulador


Haga clic en

para conectarse a un dispositivo o un emulador.

Si se conectan los diferentes dispositivos o emuladores, se le pedir que dispositivo o el emulador


desea conectarse.

Seleccione el emulador o el dispositivo en el


lista.

Haga clic en

8.3

para confirmar.

Configuracin general
Muestra el estado del diseador, en este caso la
Diseador est conectado.

Selecciona la vista actual a editar.


Cuando se selecciona el cuadro combinado de vista, presionando arriba o hacia abajo se mover a travs de la
vistas y las propiedades de la vista mostrar automticamente.

La ventana se puede ajustar a permanecer siempre en la parte superior.

8. El diseador \/ 8.4 archivos de imagen

8.4

104

Basic4Android Gua del principiante

Archivos de imagen
Puede agregar archivos de imagen para el diseo.
Haga clic en

para seleccionar los archivos de la (s) para agregar.

Estos archivos se mostrarn en la lista de archivos de imagen.


Estos archivos se guardan en la carpeta de archivos del proyecto.
Para eliminar archivos, comprobar los archivos que desea eliminar
y haga clic en

8. El diseador \/ 8,5 lista de propiedades

8.5

105

Basic4Android Gua del principiante

Lista de propiedades
Una lista de las propiedades de la vista seleccionada
organizados en grupos.
Todas las propiedades pueden modificarse directamente en el
lista.
Todas las propiedades en el grupo principal y algunos de
las propiedades de los otros grupos son comunes
a todos los tipos de vista.

Explicacin de algunas propiedades generales para todos los tipos de vistas:


Nombre de la vista. Es recomendable dar nombres descriptivos. Comn
Nombre
uso es dar un prefijo de 3 caracteres y agregar el propsito de la vista. En el ejemplo, la vista es de
Escriba la etiqueta y su propsito es introducir un resultado. As que le damos el nombre \"lblResult\", \"lbl\" para
Etiqueta y \"Resultado\" para el propsito. Esto no lleva mucho tiempo durante el diseo del esquema
pero ahorra mucho tiempo durante la codificacin y el mantenimiento del programa.
Tipo de la vista, no son editable. No es posible cambiar el tipo de una vista.
Tipo
Si es necesario, debe quitar la vista y agregar uno nuevo.
Nombre genrico de las subrutinas que administra los eventos de la vista. De forma predeterminada,
Nombre del evento
el nombre del evento es el mismo que el nombre de la vista como en el ejemplo. Los eventos de varias vistas
puede ser redirigido a una subrutina misma. En ese caso debe introducir el nombre de esa rutina.
Mirar el ejemplo de SecondProgram para la gestin de eventos de clic de los botones de la
teclado, la rutina btnEvent_Click.
Nombre de la vista de los padres. Actividad, en el ejemplo. La vista padre puede ser
Padre
cambiado en la seleccin de uno nuevo en la lista.
X coordenadas del borde izquierdo de la vista desde el borde izquierdo de su padre
Izquierda
Vista, en pxeles (los pxeles estn en realidad dips, pxeles independientes de la densidad).

8. El diseador \/ 8,5 lista de propiedades

106

Basic4Android Gua del principiante

Y coordinar del borde superior de la vista desde el borde superior de su padre


Arriba
Vista, en pxeles (los pxeles estn en realidad dips, pxeles independientes de la densidad).
Ancho de la vista en pxeles (los pxeles estn en realidad dips, densidad
Ancho
pxeles independientes).
Altura de la vista en pxeles (los pxeles estn en realidad dips, densidad
Altura
pxeles independientes).
Habilitado

Habilita o deshabilita el uso de la vista Ex: activado = True

Visible

Determina si la vista es visible para el usuario o no.

Este es un marcador de posicin que puede utilizar para almacenar datos adicionales. Etiqueta pued
Etiqueta
texto, pero tambin puede ser cualquier otro tipo de objeto. Etiqueta se utiliza en el ejemplo de SecondProgram para la
botones numricos haga clic en gestin de eventos en la rutina btnEvent_Click.

8. El diseador \/ 8,6 variantes de diseo

8.6

107

Basic4Android Gua del principiante

Variantes de diseo
Variantes de diseo diferente pueden gestionarse en un mismo archivo de diseo.

Hagamos un ejemplo basado en el proyecto de TestLayouts


(que puede encontrarse en el Directorio de Guide\\SourceCode\\TestLayouts):
-Copiar toda la carpeta TestLayouts.
-Cambiar su nombre a TestLayoutVariants.
-Renombrar el archivo TestLayout.b4a a TestLayoutVariants.b4a.
-Ejecute el IDE.
-Ejecutar el emulador (320 * 480 - 160)
-Ejecutar el diseador.
-Conecte el diseador para el dispositivo o el emulador.
El emulador debe tener este aspecto.

8. El diseador \/ 8,6 variantes de diseo

108

Basic4Android Gua del principiante

En el diseador, haga clic en

Seleccione:
480 x 320
escala = 1

Haga clic en

Se agrega la nueva variante.

Ir al emulador, presione Ctrl + F11, para cambiarlo al modo de paisaje.

Debe tener este aspecto.

8. El diseador \/ 8,6 variantes de diseo

109

Basic4Android Gua del principiante

La caja de herramientas no es visible, para que se la seleccionam


en el diseador.

Y establezca su valor superior a 10.

Aparece el cuadro de herramientas.


Necesitamos escribir cdigo para automticamente
reorganizar las vistas del paisaje al modo
se utiliza.

Altura del botn 65


ListView1:
Ancho = 380
Altura = 220

8. El diseador \/ 8,6 variantes de diseo

110

En el cdigo cambiamos la rutina de Activity_Create de

Para

Ejecute el programa.
El emulador debe tener este aspecto:

Haga clic en Ctrl + F11 para cambiar a retrato >>>


Ahora tenemos dos variantes de diseo en el mismo archivo de diseo.

Basic4Android Gua del principiante

8. El diseador \/ 8,6 variantes de diseo

111

Basic4Android Gua del principiante

Con el 320 * 240_120 emulador.

Podemos lograr un efecto similar en el diseador cuando se selecciona una variante de diseo diferentes y nos
cambiar a modo de paisaje (Ctrl-F11).

8 El diseador \/ 8.7 Resumen diseador

8.7

112

Basic4Android Gua del principiante

El diseador de resumen

El diseador abstracto es una herramienta que muestra el diseo en una ventana independiente y es parte de la
Diseador. Es mucho ms rpido que el emulador.
Su objetivo principal es crear variantes de diseo diferente.
Los diferentes puntos de vista no se muestran con su forma exacta pero slo como rectngulos coloreados.
Al hacer clic en una vista muestra sus propiedades en el diseador.
Emulador

Diseador de resumen

8 El diseador \/ 8.7 Resumen diseador

113

Basic4Android Gua del principiante

8.7.1 El men
Diseo
Partidos:
La variante elegida en la
Diseador.
El dispositivo conectado.

Eleccin de la ms actual
tamaos de pantalla y resoluciones.
Seleccione una resolucin y posicin
las diferentes opiniones segn
las nuevas dimensiones y escala.

Zoom
Dos posibilidades:
50 %
100 %
Herramientas
Cambiar el tamao de forma para adaptarse al diseo.
Agrega el diseo actual como una nueva variante de diseo en el
Diseador.

8 El diseador \/ 8.7 Resumen diseador

114

Basic4Android Gua del principiante

8.7.2 Ejemplo
Tomemos un ejemplo simple con un diseo en el modo de retrato, como la imagen de abajo.

Ahora nos gustara hacer una variante de paisaje.


Haga clic en el telfono (paisaje) en el men Diseo

El diseador tiene el siguiente aspecto:

Haga clic en el men Herramientas en


Agregar diseo actual como nueva variante
para agregar el modo de paisaje como un nuevo
variante en el archivo de diseo.

8 El diseador \/ 8.7 Resumen diseador

115

Basic4Android Gua del principiante

Ahora nos reorganizar las vistas para encajar


la nueva orientacin.

En el diseador vemos la nueva variante.

Si se selecciona en el diseador
la variante anterior

ver la pantalla de la izquierda.

8 El diseador \/ 8.7 Resumen diseador

116

Basic4Android Gua del principiante

Haga clic en el men de herramientas, cambiar el tamao para encajar diseo de formulario

a cambia el tamao de la ventana para ajustar el diseo.

8 El diseador \/ 8.9 Scripts de diseador

8.8

117

Basic4Android Gua del principiante

Agregar vistas por cdigo

Tambin es posible agregar vistas por cdigo en lugar de utilizar el diseador de un dispositivo, el emulador o
el diseador abstracto.
Ventaja: usted tiene el control total de la vista.
Desventaja: tienes que definir casi todo.
El cdigo fuente est en el directorio del cdigo fuente: AddViewsByCode
Para las posiciones y dimensiones de las vistas en la pantalla dos opciones especiales estn disponibles:
pxeles independientes de la densidad.
DIP
100dip = DipToCurrent(100)
DipToCurrent es una palabra clave DIP es el acceso directo
100dip = 100 \/ 160 * densidad de dispositivo
La densidad por defecto es 160 dpi puntos por pulgada (pxeles por pulgada)
Densidades en Android:
o 120 escala 0.75
o 160 escala 1 predeterminado
o 240 escala 1.5
o 320 escala 2

%x y %y
representan las distancias proporcionales a la altura y anchura de la pantalla activa.
20% x = 0.2 * Activity.Width
90% y = 0.9 * Activity.Height
20% x = PerXToCurrent(20)
PerXToCurrent es una palabra clave
%x es el acceso directo
90% y = PerYToCurrent(90)

Ejemplo:
Pongamos una etiqueta encima de la pantalla y un Panel debajo de ella con una etiqueta y un botn en l:

8. El diseador \/ 8,8 agregar vistas por cdigo 118

Basic4Android Gua del principiante

'Diming' los puntos de vista.


Dim lblTitle, lblPanelTitle como etiqueta
Dim pnlTest como Panel
Como botn de Dim btnTest

Inicializando la etiqueta de ttulo:

lblTitle.Initialize(\"\")
Inicializa la etiqueta, no EventName requerido.
lblTitle.Color = Colors.Red
Establece el color de fondo en rojo.
lblTitle.TextSize = 20
Establece el tamao del texto a 20.
lblTitle.TextColor = Colors.Blue
Establece el color del texto a azul.
lblTitle.Gravity = Gravity.CENTER_HORIZONTAL + Gravity.CENTER_VERTICAL

Establece la gravedad de la etiqueta.


lblTitle.Text = \"Title\"
Establece el texto de la etiqueta 'Title'.
Activity.AddView (lblTitle, 20% x, 10dip, 60% x, 30dip) Agrega la vista a la actividad.
Si la etiqueta se sum en el diseador, todo el cdigo anterior no habra sido necesario
debido a las propiedades ya habra definidas en el diseador.
En Activity.AddView lnea vemos que:
se establece la propiedad Left al 20% x, 20% de Activity.Width.
la propiedad Top se establece en 10dip, 10 pxeles independientes de la densidad.
la propiedad Width se establece en 60% x, 60% de Activity.Width
la propiedad Height se establece en 30dip, 30 pxeles independientes de la densidad.
pnlTest.Initialize(\"\")
pnlTest.Color = Colors.Blue

Inicializa el Panel, no EventName requerido.


Establece el color de fondo azul.

btnTest.Initialize(\"btnTest\")
btnTest.Text = \"Prueba\"

Inicializa el botn, EventName = btnTest.


Establece el texto del botn de \"Test\"

8. El diseador \/ 8,8 agregar vistas por cdigo 119

Basic4Android Gua del principiante

lblPanelTitle.Initialize(\"\")
lblPanelTitle.Color = Colors.Red
lblPanelTitle.TextSize = 16
lblPanelTitle.TextColor = Colors.Blue
lblPanelTitle.Gravity = Gravity.CENTER_HORIZONTAL + Gravity.CENTER_VERTICAL
lblPanelTitle.Text = \"Prueba del Panel\"

Similar al etiqueta de ttulo.


Activity.AddView (pnlTest,0,lblTitle.Top + lblTitle.Height + 10dip, 100% x, 50% y)

Agrega el Panel pnlTest a la actividad.


la izquierda est establecida en 0
se establece la propiedad superior a 10dips por debajo del etiqueta de ttulo
se establece la propiedad Width a 100% x, la Activity.Width total
la propiedad Height se establece en 50% y, la mitad de la Activity.Height
pnlTest.AddView (lblPanelTitle, 20dip, 10dip, 100dip, 30dip)

Agrega la etiqueta lblPanelTitle a la pnlTest de Panel en la posicin dada y con el dado


dimensiones en salsas.
pnlTest.AddView (btnTest, 50dip, 50dip, 100dip, 60dip)

Agrega el botn btnTest para la pnlTest de Panel en la posicin dada y con las dimensiones determinadas en
dips.
Y el resultado:

8 El diseador \/ 8.9 Scripts de diseador

8.9

120

Basic4Android Gua del principiante

Secuencias de comandos de diseadores

Uno de los ms comunes problemas los desarrolladores Android cara es la necesidad de adoptar la interfaz de usuario
para dispositivos con diferentes tamaos de pantalla.
Como se describe en el tutorial de diseador visual, puede crear mltiples variantes de diseo para que coincida con
pantallas diferentes.
Sin embargo no es viable ni recomendado para crear muchas variantes de diseo.
Basic4android v1.9 introduce una nueva herramienta llamada \"Scripts de diseador\" que le ayudar a afinar
su diseo y ajustarla fcilmente a las diferentes pantallas y resoluciones.
La idea es combinar la utilidad del diseador visual con la flexibilidad y la potencia de
Cdigo de programacin.
Puede escribir una secuencia de comandos simple para ajustar el diseo basado en las dimensiones del dispositivo actual y
ver los resultados inmediatamente. No es necesario compilar e instalar el programa completo cada vez.
Usted puede ver tambin inmediatamente los resultados en el diseador de resumen. Esto le permite probar su
diseo en muchas diferentes tamaos de pantalla.

8 El diseador \/ 8.9 Scripts de diseador

121

Basic4Android Gua del principiante

Cmo

Cada archivo de diseo puede incluir cdigo de secuencia de comandos. El guin est escrito dentro del diseador visual bajo
nueva ficha de diseador Scripts:

Sus dos tipos de guiones: el guin general que se aplicar a todas las variantes y una secuencia de comandos
especficos de la variante actual.
Una vez que se pulsa en el botn Ejecutar Script (o F5), el script se ejecuta y el dispositivo conectado \/
emulador y diseador resumen mostrar el diseo actualizado.
Lo mismo ocurre cuando se ejecuta el programa compilado. La secuencia de comandos (ya compilado)
ejecutado una vez cargado el diseo.
El general de comandos se ejecuta primero seguido del variante script especfico.
El lenguaje de script es muy sencillo y est optimizado para la gestin del diseo.
Permite iniciar con un ejemplo.

8 El diseador \/ 8.9 Scripts de diseador

122

Basic4Android Gua del principiante

Ejemplo
En este ejemplo vamos a construir el esquema siguiente:

btnLeft y btnRight deben colocarse en las esquinas superiores.


btnDown debe estar ubicado en la parte inferior y llene toda la anchura.
ListView1 debe rellenar toda el rea disponible.
ToggleButton1 debe colocarse exactamente en el centro.
El primer paso es agregar los puntos de vista y colocarlos con el diseador visual (no necesita ser
100% de precisin).
Ahora seleccione la ficha Diseo de secuencias de comandos y agregue el cdigo.
Tenga en cuenta que las opiniones se bloquean cuando se selecciona la ficha Diseo de secuencias de comandos.

8 El diseador \/ 8.9 Scripts de diseador

123

En este caso es el cdigo:


' Todos los script de variantes
btnRight.Right = 100% x
btnDown.Bottom = 100% y
btnDown.Width = 100% x
EditText1.Width = 100% x
EditText1.Bottom = btnDown.Top - 5dip
ListView1.Width = 100% x
ListView1.SetTopAndBottom(,.Abajo, EditText1.Top)
ToggleButton1.HorizontalCenter = 50% x
ToggleButton1.VerticalCenter = 50% y

El resultado:

Basic4Android Gua del principiante

8 El diseador \/ 8.9 Scripts de diseador


10 '' tablet

124

Basic4Android Gua del principiante

8 El diseador \/ 8.9 Scripts de diseador

125

Basic4Android Gua del principiante

Referencia

ArgumentException: The incoming token has expired. Get a new access token from the Authorization Server. : ID=

ArgumentException: The incoming token has expired. Get a new access token from the Authorization Server. : ID=3311.V
ArgumentException: The incoming token has expired. Get a new access token from the Authorization Server. : ID=3
-Anchura \/ altura - Obtiene o establece el ancho o la altura de la vista.
-TextSize - Obtiene o establece el tamao del texto. No debe utilizar unidades 'dip' con este valor como es
ya medido en unidades fsicas.
-Texto - Obtiene o establece el texto de la vista.
Slo estn disponibles para vistas que muestran texto propiedades TextSize y texto.
-Imagen - establece el archivo de imagen (slo escritura). Slo se admite por ImageView.
-Visible - Obtiene o establece la propiedad visible de la vista.
Mtodos:
-SetLeftAndRight (izquierda, derecha) - establece propiedades de izquierda y derecha de la vista. Este mtodo cambia el
ancho de la vista en funcin de los dos valores.
-SetTopAndBottom (superior, inferior) - establece propiedades de superior e inferior de la vista. Este mtodo
cambia la altura de la vista en funcin de los dos valores.
Notas y consejos
-valores %x y %y estn en relacin con la opinin de que el diseo de las cargas.
Generalmente ser la actividad. Sin embargo se utiliza Panel.LoadLayout, ser en relacin con esto
panel.
-Utilizar las unidades 'dip' de todos los tamaos (excepto TextSize). Mediante el uso de 'dip' unidades los valores sern
escalan correctamente en dispositivos con mayor o menor resolucin.
-En la mayora de los casos se recomienda no crear variantes con escalas distintas de 1.0. Al agregar
dicha variante se le dar la opcin de agregar una variante normalizada en su lugar con una escala de 1.0.
-Variables - se pueden utilizar variables en la secuencia de comandos. No es necesario declarar las variables antes
usarlas (no es ninguna palabra clave Dim en la secuencia de comandos).
-Activity.RerunDesignerScript (LayoutFile As String, ancho como Int, altura como Int) - en algunos casos
es deseable para ejecutar el cdigo del script nuevamente durante el programa. Por ejemplo, puede actualizar
el diseo cuando el teclado en pantalla es visible. Mtodo Activity.RerunDesignerScript permite
Vuelva a ejecutar el script y especifique la anchura y altura que representa 100 x % y 100% y.
Para que este mtodo funcione, todas las vistas que se hace referencia en la secuencia de comandos deben declararse en Sub
Globals.
Tenga en cuenta que este mtodo no debe utilizarse para manejar los cambios de orientacin de pantalla. En ese caso la
actividad va a crearse y la secuencia de comandos se ejecutar durante la llamada de Activity.LoadLayout.

9 Actividad y proceso de ciclo de vida

126

Basic4Android Gua del principiante

Ciclo de vida del proceso y la actividad

Comencemos simple:
Cada programa de Basic4android se ejecuta en su propio proceso.
Un proceso tiene un subproceso principal que tambin es llamado el subproceso de la interfaz de usuario que vive tanto tiem
vidas. Un proceso puede tener tambin ms subprocesos que son tiles para tareas en segundo plano.
Un proceso se inicia cuando el usuario inicia la aplicacin, suponiendo que no se est ejecutando ya en
el fondo.
Al final del proceso es menos determinante. Ocurrir en algn momento despus de que el usuario o sistema ha cerrado todos
las actividades.
Si por ejemplo tiene una actividad y el usuario presiona la tecla atrs, se cierra la actividad.
Ms tarde cuando el telfono queda poca memoria (y eventualmente ocurrir) se cerrar el proceso.
Si el usuario inicia su programa nuevamente y el proceso no fue asesinado y luego ser el mismo proceso
ser reutilizados.
Una aplicacin de Basic4android est hecha de una o ms actividades. Android soporta varios otros
componentes \"principales\". Estos sern agregados a Basic4android en el futuro.
Las actividades son algo similares a los formularios Windows Forms.
Una diferencia importante es que, si bien no es una actividad en primer plano puede morir a fin de
preservar la memoria. Normalmente querr guardar el estado de la actividad antes de se pierde. Ya sea en
un almacenamiento persistente o en la memoria que est asociado con el proceso.
Posteriormente a esta actividad se crearse cuando sea necesario.
Otro punto delicado ocurre cuando hay un cambio de configuracin principales en el dispositivo. La mayora
comn es un cambio de orientacin (el usuario gira el dispositivo). Cuando se produce un cambio del
actividades actuales son destruidas y luego recreadas. Ahora es posible crear la actividad segn
a la nueva configuracin (por ejemplo, ahora sabemos las nuevas dimensiones de la pantalla).

9 Actividad y proceso de ciclo de vida

9.1

127

Basic4Android Gua del principiante

Cmo maneja?

Cuando se crea una nueva actividad se iniciar con la siguiente plantilla de cdigo:

Las variables pueden ser globales o locales. Las variables locales son variables que se declaran dentro de un sub
otro que Process_Globals o Globals.
Las variables locales son locales a la sub que contiene. Una vez los extremos sub, estas variables ya no existen.
Las variables globales pueden accederse desde todos los subs.
Existen dos tipos de variables globales.
Las variables de procesos y actividad.

9 Actividad y proceso de ciclo de vida

9.2

128

Basic4Android Gua del principiante

Variables globales del proceso

Estas variables viven como vive el proceso.


Debe declarar estas variables dentro de sub Process_Globals.
Este sub es llamado una vez cuando se inicia el proceso (esto es cierto para todas las actividades, no slo la primera
actividad).
Estas variables son las variables slo \"pblicas\". Lo que significa que puede acceder desde otros
mdulos as.
Sin embargo, no todos los tipos de objetos se pueden declarar como variables de proceso.
Todas las vistas por ejemplo no pueden declararse como variables de proceso.
La razn es que no queremos hacer una referencia a los objetos que deben ser destruidos juntos
con la actividad.
En otras palabras, cuando se destruye la actividad, todas las vistas que figuran en la actividad son
destruido as. Si lo no hizo y mantiene una referencia a una vista despus de la actividad
destruido, el recolector de elementos no sera capaz de liberar el recurso y tendramos un
prdida de memoria. Si tenemos una referencia a una vista, el recolector no sera capaz de liberar el
recursos ya tendremos una prdida de memoria.
El compilador aplica este requisito.

9.3

Variables de actividad

Estas variables son propiedad de la actividad.


Debe declarar estas variables dentro Sub Globals.
Estas variables son \"privadas\" y slo se pueden acceder desde el mdulo de actividad actual.
Todos los tipos de objeto pueden declararse como variables de actividad.
Cada vez que se crea la actividad, se llama Sub Globals (antes Activity_Create).
Estas variables existen mientras exista la actividad.

9.4

Sub Activity_Create (cumshot As Boolean)

Este sub se llama cuando se crea la actividad.


La actividad se crea
Cuando el usuario inicia primero la aplicacin
ha cambiado la configuracin del dispositivo (el usuario gira el dispositivo) y la actividad fue
destruido
Cuando la actividad en el fondo y OS decidi destruirla para liberar
memoria.
El propsito principal de este sub es cargar o crear el diseo.(entre otros usos).
El parmetro de la Declarcin nos dice si es la primera vez que esta actividad se crea. Primera vez se relaciona con
en el proceso actual.
Puede utilizar valores para ejecutar todo tipo de inicializaciones relacionados con las variables de proceso.
Por ejemplo si tiene un archivo con una lista de valores usted necesita leer, puede leerlo si
Declarcin es True y guarde la lista como una variable de proceso declarando la lista Sub
Process_Globals
Ahora sabemos que esta lista estar disponible tanto como la vida del proceso y no es necesario para
cargarlo incluso cuando se recrea la actividad.
Para resumir, puede probar declarcin sea True y, a continuacin, inicializar las variables de proceso que
se declaran en Sub Process_Globals.

8. El diseador \/ 8,8 agregar vistas por cdigo 129

9.5

Basic4Android Gua del principiante

Globals versus cumshot

Process_Globals y Globals debe utilizarse para declarar las variables.


Tambin puede establecer los valores de las variables \"simples\" (numricos, cadenas y booleanos).
All no debera poner cualquier otro cdigo.
En su lugar, usted debe poner el cdigo en Activity_Create.

9.6

Sub Activity_Resume
Sub Activity_Pause (UserClosed As Boolean)

Cada vez que la actividad se mueve en primer plano al fondo que se llama Activity_Pause.
Tambin se llama Activity_Pause cuando la actividad est en primer plano y un cambio de configuracin
se produce (que conduce a la actividad en pausa y luego destruidos).
Activity_Pause es el ltimo lugar para guardar informacin importante.
Generalmente hay dos tipos de mecanismos que permiten guardar el estado de actividad.
Informacin que slo es relevante a la instancia actual de la aplicacin puede almacenarse en uno o ms
las variables de proceso.
Otra informacin debe almacenarse en un almacenamiento persistente (archivo o base de datos).
Por ejemplo, si el usuario modifica algunos ajustes deben guardar los cambios en un almacenamiento persistente
en este punto. De lo contrario se pueden perder los cambios.
Activity_Resume se llama justo despus de acabados Activity_Create o reanudar una actividad en pausa
(actividad se traslad a fondo y ahora se vuelve al primer plano).
Tenga en cuenta que cuando abres una actividad diferente (por llamada StartActivity), la actividad actual es el primera
en pausa y, a continuacin, se crear la otra actividad si es necesario y se reanud (siempre).
Como se discuti anteriormente Activity_Pause se llama cada vez que la actividad se mueve en primer plano para
el fondo. Esto puede suceder porque:
1. Se inici una actividad diferente.
2. Se presion el botn de inicio.
3. Un evento de configuracin cambiada fue levantada (orientacin cambiada por ejemplo).
4. Se presion el botn atrs.
En los escenarios 1 y 2, se interrumpir la actividad y por ahora se mantiene en memoria como se espera ser
reutilizados posteriormente.
En el escenario 3 se interrumpir la actividad, destruido y creado (y reanud) nuevamente.
En el escenario 4 la actividad ser en pausa y destruida. Pulsando el botn de la parte posterior es similar a
cierre de la actividad. En este caso no necesita guardar cualquier instancia informacin especfica (la
posicin de pacman en un juego de PacMan por ejemplo).
El parmetro UserClosed ser cierto en este escenario y false en todos los dems. Tenga en cuenta que tambin ser
True al llamar a Activity.Finish. Este mtodo hace una pausa y destruye la actividad actual, similar a
el botn atrs.
Puede utilizar UserClosed parmetro para decidir qu datos para guardar y tambin si desea restablecer cualquiera
las variables de proceso relacionados con su estado inicial (mover la posicin de pacman al centro si la posicin es un
variable de proceso).

10 Variables y objetos

130

Basic4Android Gua del principiante

10 Variables y objetos

Una variable es un nombre simblico dado a alguna cantidad conocida o desconocida o informacin, para la
propsito de permitir que el nombre ser usado independientemente de la informacin que representa. Una variable
nombre en cdigo de fuente de computadora generalmente asociada a una ubicacin de almacenamiento de datos y as tambi
contenido y estos pueden cambiar durante el curso de la ejecucin del programa. (fuente Wikipedia)
Sistema de tipo de Basic4android se deriva directamente del sistema de tipo de Java.
Existen dos tipos de variables: tipos primitivos y no primitivas.
Primitivas incluyen los tipos numricos: Byte, Short, Int, Long, Float y doble.
Primitivas tambin incluyen: Boolean y Char.

10.1 Tipos de variables


Lista de tipos con sus rangos de:
B4A
Boolean

Tipo
Boolean

Byte

entero de 8 bits

Corto

entero de 16 bits

Int

entero de 32 bits

Largo

entero largo de 64 bits

Flotador
Doble
Char
Cadena

nmero de punto flotante


32 bits
doble precisin
nmero
64 bits
carcter
matriz de caracteres

valor mn.
Falso
7
-2
-128
15
-2
-32768
31
-2
-2147483648
63
-2

valor mx.
True
7
2-1
127
15
2 -1
32767
31
2 -1
2147483647
63
2 -1

-9223372036854775808

9223372036854775807

-149

-2
1.4E-45
-1074
-2

2.2250738585072014 E308

-23

127

(2 -2 ) * 2
3.4028235 E 38
-52
1023
(2 -2 ) * 2

1.7976931348623157 e
308

Tipos primitivos se pasan siempre por valor a otros subs o cuando asigna a otras variables.
Por ejemplo:
La variable A = 12
Se pasa por valor a rutina S2
A variable an equivale a 12, aunque b fue cambiado en rutina S2.
Variable B = 12
Su valor se cambia a B = 45

10 Variables y objetos

131

Basic4Android Gua del principiante

Todos los dems tipos, incluyendo matrices de tipos primitivos y las cadenas se clasifican como no primitivo
tipos.
Cuando se pasa una primitiva-no a un sub o cuando se le asigna a una variable diferente, una copia de la
se pasa una referencia.
Esto significa que los datos en s no est duplicados.
Es ligeramente diferente al pasar por referencia, como no se puede cambiar la referencia del original
variable.
Todos los tipos pueden ser tratados como objetos.
Colecciones como listas y mapas de trabajo con objetos y por lo tanto, puede almacenar cualquier valor.
Aqu est un ejemplo de un error comn, donde el desarrollador intenta agregar varios arreglos de discos a una lista:
Dim arr(3) como Int
Dim List1 como lista
List1.Initialize
Para i = 1 A 5
ARR(0) = i * 2
ARR(1) = i * 2
ARR(2) = i * 2
List1.Add(arr) ' Agregar el conjunto como un solo elemento
Siguiente
ARR = List1.Get(0) ' obtener el primer elemento de la lista
Log(arr(0)) ' lo que se imprimir aqu???

Usted puede esperar para imprimir 2. Sin embargo se imprimir 10.


Hemos creado una sola matriz y 5 referencias de esta matriz se agreg a la lista.
Los valores de la matriz solo son los valores establecidos en la ltima iteracin.
Para solucionar esto tenemos que crear una nueva matriz cada iteracin.
Esto se hace por llamada Dim cada iteracin:
Dim arr(3) como Int ' esta llamada es redundante en este caso.
Dim List1 como lista
List1.Initialize
Para i = 1 A 5
Dim arr(3) como Int
ARR(0) = i * 2
ARR(1) = i * 2
ARR(2) = i * 2
List1.Add(arr) ' Agregar el conjunto como un solo elemento
Siguiente
ARR = List1.Get(0) ' obtener el primer elemento de la lista
Log(arr(0)) ' se imprimirn 2

Consejo: Puede utilizar la biblioteca de CollectionsExtra de agraham para copiar una matriz.

10 Variables y objetos

132

Basic4Android Gua del principiante

10.2 Nombres de variables


Depende de usted para dar cualquier nombre a una variable, excepto palabras reservadas.
Un nombre de variable deben comenzar con una letra y debe estar compuesto por los siguientes caracteres A-z, unz, 0-9 y de subrayado \"_\", sin espacios, sin corchetes etc..
Nombres de variables distinguen maysculas de minsculas, esto significa que el ndice y refieren a la misma variable.
Pero es una buena prctica para darles nombres descriptivos.
Ejemplo:
Inters = Capital * tasa \/ 100
es significativo
n1 = n2 * n3 \/ 100
no significativo
Para las vistas resulta til aadir al nombre de un prefijo de tres caracteres que define su tipo.
Ejemplos:
lblCapital LBL > etiqueta
Capital > fin
edtInterest EDT > EditText
Inters > fin
btnNext
btn > botn
Prxima > fin

10.3

Declarar variables

10.3.1 Simples variables


Las variables declaradas con la Dim palabra clave seguida por el nombre de la variable y el Comopalabra clave
y seguido por el tipo de variable. Ejemplos:
Declara tres variables como doble,
nmeros de doble precisin.
Declara tres variables como Int, nmeros enteros.

Declara tres variables como EditText vistas.


Declara dos variables como vistas de botn.
Las mismas variables tambin pueden declararse de manera breve.

Los nombres de las variables separaron por comas y seguido por la declaracin de tipo.

10 Variables y objetos

133

Basic4Android Gua del principiante

Nombres de vista deben declararse cuando queremos utilizarlas en el cdigo.


Por ejemplo, si queremos para cambiar el texto en una vista de EditText en el cdigo, como
edtCapital.Text = \"1200\",
edtCapital
Tenemos que hacer referencia a este punto de vista EditText
por su nombre
, esto se hace con el Dim
Declaracin.
Si nunca hacemos cualquier referencia a este punto de vista EditText en cualquier lugar en el cdigo sin declaracin
es necesario.
Utilizando una rutina de evento para vista no necesita una declaracin bien.
Para asignar un valor a una variable escritura su nombre seguido por el signo igual y seguido por la
valor, como:
Capital = 1200
LastName = \"SMITH\"

Capital
Tenga en cuenta
que paraescribimos slo 1200 porque Capital es un nmero.
Pero paraLastName escribimos SMITH porque LastName es una cadena.
Cadenas siempre deben escribirse entre comillas dobles.

10.3.2 Variables de matriz

Los arreglos son colecciones de datos u objetos que se pueden seleccionar mediante ndices. Arreglos de discos pueden tener
dimensiones.
LastName, el nmero de
La declaracin contiene la Dim palabra clave seguida por el nombre de la variable
elementos entre parntesis (50), la palabra claveComo
y el tipo de variable Cadena.
Ejemplos:
Matriz de una dimensin de cadenas, el nmero total de elementos de 50.
Matriz de dos dimensiones de dobles, el nmero total de elementos 9.
Matriz de tres dimensiones de enteros, nmero total de elementos 150.
El primer ndice de cada dimensin de una matriz es 0.
LastName(0), Matrix(0,0), Data(0,0,0)

El ltimo ndice es igual al nmero de elementos en cada dimensin menos 1.


LastName(49), Matrix(2,2), Data(2,4,9)

10 Variables y objetos

134

Basic4Android Gua del principiante

Este ejemplo muestra cmo obtener acceso a todos los elementos de un tres matriz dimensional.

Una manera ms verstil para declarar matrices es utilizar variables.

Declaramos la variable Dim NbPers As Int y establezca su valor en 10,NbPers = 10 .


El punto y coma \":\" es un separador para la declaracin de dos en la misma lnea.
Luego declaramos las matrices con esta variable en lugar del nmero 10 como antes.
La gran ventaja es que si en algn momento tenemos que cambiar el nmero de elementos, cambiamos slo uno
valor.
Para la matriz de datos podramos utilizar el siguiente cdigo.

Y la rutina de acceso.

Llenar una matriz con la palabra clave de matriz:

10 Variables y objetos

135

Basic4Android Gua del principiante

10.3.3 Conjunto de opiniones (objetos)


Vistas u objetos tambin pueden estar en una matriz. El cdigo siguiente muestra un ejemplo:
Los nombres individuales (b1, b2, etc.) deben ser tambin 'Dimed'.
En el ejemplo debajo de los botones se agregan a la actividad por cdigo.

Los botones tambin se podran haber aadido en un archivo de diseo, en ese caso tampoco deben ser inicializados,
ni agregado a la actividad y las propiedades de texto y una etiqueta tambin deben establecerse en el diseador.
En ese caso el cdigo tendra este aspecto:

10 Variables y objetos

136

Basic4Android Gua del principiante

10.3.4 Las variables de tipo


Permtanos reutilizar el ejemplo con los datos de una persona.
En lugar de declarar cada parmetro por separado, podemos definir una variable de tipo personal con el
Escriba la palabra clave:

El nuevo tipo de personal es Persona , luego declaramos variables individuales o matrices de este personal
tipo.
Para acceder a un determinado tema utilizar el siguiente cdigo.
CurrentUser.FirstName
CurrentUser.LastName
User(1).LastName
User(1).FirstName

El nombre de variable, seguido de un punto y el parmetro deseado.


Si la variable es una matriz el nombre es seguido por el ndice deseado entre parntesis.
Es posible asignar una variable con tipo a otra variable del mismo tipo, como se muestra a continuacin.

10 Variables y objetos

10.4

137

Basic4Android Gua del principiante

Casting

Basic4android proyecta tipos automticamente segn sea necesario. Tambin convierte a nmeros en cadenas y vice
viceversa automticamente.
En muchos casos necesita convertir explcitamente un objeto a un tipo especfico.
Esto puede hacerse mediante la asignacin del objeto a una variable del tipo necesario.
Por ejemplo, palabra clave Sender hace referencia a un objeto que es el objeto que provoc el evento.
El cdigo siguiente cambia el color del botn pulsado.
Tenga en cuenta que hay varios botones que comparten la misma sub evento.

El cdigo anterior puede escribirse tambin ms elegante:

10 Variables y objetos

10.5

138

Basic4Android Gua del principiante

mbito de aplicacin

10.5.1 Variables de proceso de


Estas variables viven como vive el proceso.
Debe declarar estas variables dentro de sub Process_Globals.
Este sub es llamado una vez cuando se inicia el proceso (esto es cierto para todas las actividades, no slo la primera
actividad).
Estas variables son las variables slo \"pblicas\". Lo que significa que puede acceder desde otros
mdulos as.
Sin embargo, no todos los tipos de objetos se pueden declarar como variables de proceso.
Todas las vistas por ejemplo no pueden declararse como variables de proceso.
La razn es que no queremos hacer una referencia a los objetos que deben ser destruidos juntos
con la actividad.
En otras palabras, una vez que se destruye la actividad, todas las vistas que figuran en el
actividad estn siendo destruidos as.
Si tenemos una referencia a una vista, el recolector de elementos no podr liberar el recurso y nos
tendr una prdida de memoria. El compilador aplica este requisito.
Para acceder a las variables globales de proceso en otros mdulos que el mdulo donde se declararon sus
los nombres deben tener el nombre del mdulo que fueron declarados como prefijo.
Ejemplo:
Las variables definidas en un modle con el nombre: MyModule
Sub Process_Globals
Dim Mi_var As String
End Sub

Acceso a la variable en el mdulo MyModule:


MyVar = \"Texto\"

Acceso a la variable en cualquier otro mdulo:


MyModule.MyVar = \"Texto\"

10.5.2 Variables de actividad


Estas variables estn contenidas por la actividad.
Debe declarar estas variables dentro Sub Globals.
Estas variables son \"privadas\" y slo se pueden acceder desde el mdulo de actividad actual.
Todos los tipos de objeto pueden declararse como variables de actividad.
Cada vez que se crea la actividad, se llama Sub Globals (antes Activity_Create).
Estas variables existen mientras exista la actividad.

10.5.3 Las variables locales de


Las variables declaradas en una subrutina son locales a esta subrutina.
Son \"privadas\" y slo se puede acceder desde dentro de la subrutina donde ellos fueron declarados.
Todos los tipos de objetos se pueden declarar como variables locales.
En cada llamada de la subrutina se inicializan las variables locales a su valor predeterminado o a cualquier otro
valor han definido en el cdigo y son 'destruido' cuando se deja la subrutina.

10 Variables y objetos

10.6

139

Basic4Android Gua del principiante

Consejos

Una vista puede asignarse a una variable para poder cambiar fcilmente las propiedades comunes de la vista.
Por ejemplo, el cdigo siguiente desactiva todas las vistas que son hijos directos de la actividad:

Si slo queremos deshabilitar botones:

11 Mdulos

140

11 Mdulos
Existe al menos un mdulo principal.
Su nombre es siempre principal y no puede cambiarse.

Existen tres tipos de mdulos:


Mdulos de actividad
Mdulos de cdigo
Mdulos de servicio

Basic4Android Gua del principiante

11 Mdulos

11.1

34s

Basic4Android Gua del principiante

Mdulos de actividad

Cada actividad tiene su propio mdulo. Para un mejor conocimiento del ciclo de vida de actividad de echar un vistazo a la
Captulo de ciclo de vida de proceso y actividad.
Puede agregar un mdulo existente o un nuevo mdulo.
Para agregar un nuevo mdulo de actividad haga clic en:

En el ejemplo se explica detalladamente en el captulo: programa de 3 actividades.


Para acceder a cualquier objeto o variable en un mdulo distinto del mdulo donde fueron declarados te
debe agregar el nombre del mdulo como prefijo para el objeto o el nombre de la variable separados por un punto.
Ejemplos del programa ThreeActivityExample:
Se declaran variables valor1 y valor2 en mdulo principal en Sub Process_Globals.

Para acceder a estas variables desde otro mdulo el nombre es Main.Value1 o Main.Value2.

NO es posible acceso cualquier vista desde otro mdulo de actividad, porque cuando es una nueva actividad
comenz la actividad actual est en pausa y es no ms accesible!

11 Mdulos

11.2

142

Basic4Android Gua del principiante

Mdulos de cdigo

Mdulos de cdigo contienen cdigo solamente. No es posible ninguna actividad en mdulos de cdigo.
El propsito y la ventaja de los mdulos de cdigo es compartir mismo cdigo en diferentes programas, principalmente para
clculos u otra gestin general.
Algunos mdulos de cdigo, llamados utilidades, ya estn publicadas por Erel en el Foro:
DBUtils, bases de datos de Android ahora son simples. Utilidades de administracin de base de datos.
HttpUtils, servicios web Android ahora son simples.
StateManager, ayuda a administrar el estado y configuracin de la aplicacin Android.

11 Mdulos

11.3

Mdulos de servicio

Existe un tutorial de mdulos de servicio.

143

Basic4Android Gua del principiante

12 Programas de ejemplo

144

Basic4Android Gua del principiante

12 Programas de ejemplo
12.1

Interfaces de usuario

Hagamos tres diferentes interfaces de usuario para seleccionar tres pantallas diferentes.
Las interfaces de tres usuario son:
Men

Vista de TabHost

Caja de herramientas de botn

Para cada programa de prueba existe un diseo principal.

Para cada una de las tres pginas hay archivos de diseo independiente pgina1 y pgina2 pgina 3.
Cada archivo de diseo se carga a un Panel o un TabHost.
Estos diseos pueden contener cualquier vistas necesita.

12 Programas de ejemplo

145

Basic4Android Gua del principiante

12.1.1 Men ejemplo (UserInterfaceMenu.b4a)


El programa de prueba es: UserInterfaceMenu.b4a.
1.
2.
3.
4.
5.

El cdigo es auto explicativo.

Cada pgina est en un Panel, pnlPage1, pnlPage2 y pnlPage3.


Los paneles se agregan por cdigo.
Se cargan los archivos de diseo de pgina a los paneles.
Los elementos de men se aaden a la actividad.
Una rutina de eventos Click para cada elemento de men.
Tambin podra hacerse en una rutina (como en UserInterfaceButtonToolbox.b4a).

12 Programas de ejemplo

146

Basic4Android Gua del principiante

12.1.2 TabHost ejemplo (UserInterfaceTabHost.b4a)


El programa de prueba es: UserInterfaceTabHost.b4a

El cdigo es auto explicativo.

1. Cada pgina se encuentra en un panel de TabHost.


2. La visin de TabHost es en la composicin principal.
3. Los paneles de TabHost se agregan con los archivos de diseo de pgina.

12 Programas de ejemplo

147

Basic4Android Gua del principiante

12.1.3 Ejemplo de cuadro de herramientas del botn (UserInterfaceButtonToolbox.b4a)


El programa de prueba es: UserInterfaceButtonToolbox.b4a
1.
2.
3.
4.
5.

El cdigo es auto explicativo.

Cada pgina est en un Panel, pnlPage1, pnlPage2 y pnlPage3.


Los paneles se agregan por cdigo.
Se cargan los archivos de diseo de pgina a los paneles.
Los botones estn en el diseo principal en el panel de pnlToolBox.
Una rutina de evento Click para todos los botones.

Programa de ejemplo de actividad tres 12.2

148

Basic4Android Gua del principiante

12.2 Programa con 3 actividades (ThreeActivityExample.b4a)


El programa de prueba es: ThreeActivityExample.b4a
El objetivo del programa es:
- para mostrar cmo administrar varias actividades.
- trabajar con variables de proceso Global a travs de diferentes actividades. Las variables pueden ser
pero cambi en diferentes actividades, estn disponibles durante todo el proyecto.
- cambiar los parmetros de diseo, en un pequeo panel rojo en movimiento sobre la pantalla.
- guardar y cargar el diseo de los parmetros del rojo pequeo panel con un objeto de mapa as la Plaza
mantendr la misma posicin despus de cambiar una pgina o reiniciar el programa.
El programa se parece a continuacin:

Tenemos:
- 3 pginas, cada uno en su propia actividad.
- 3 proceso de variables globales, valor1, valor2 y valor3
- en cada pgina 1 EditText ver para modificar el valor de la variable con el ndice de la pgina.
- 2 Etiquetas para mostrar las dos variables.
- en la pgina 1 un pequeo cuadrado rojo Panel para moverse.
Se puede:
- Valor1 de cambio en la pgina 1.
- Cambio valor2 en pgina2.
- Cambio valor3 en la pgina 3.
- Mueva el cuadrado rojo pequeo sobre la pantalla.
- Seleccione pgina2 o pgina 3 en la pgina 1.

Programa de ejemplo de actividad tres 12.2

149

Basic4Android Gua del principiante

Tomemos el ejemplo con la caja de herramientas del botn (UserInterfaceButtonToolbox.b4a).


En lugar de tener nuestras tres pginas en tres paneles utilizaremos 3 actividades.
Principal, pgina 2 y 3 de la pgina.
Para ello debemos crear dos nuevos mdulos: pgina2 y pgina 3.

En el clic de la IDE en.

Introduzca el nombre pgina2


y haga clic en

Un nuevo mdulo se agrega al proyecto.

Programa de ejemplo de actividad tres 12.2

150

Basic4Android Gua del principiante

Modificar el cdigo del mdulo pgina2 como a continuacin:

Aadir ahora un nuevo mdulo \"Pgina3\" del mismo modo como pgina2 y modificar el cdigo como a continuacin:

Estos cdigos son auto explicativas.

Programa de ejemplo de actividad tres 12.2

151

Basic4Android Gua del principiante

Debemos modificar el cdigo del mdulo principal:


En el Sub proceso-Globals aadimos tras variables.
Valor1, valor2 y valor3 para guardar algunos valores.
mapMoveTopLeft como un objeto de mapa para guardar el parmetro Left y Top de la pequea plaza Roja.

En Globals tenemos las siguientes variables:


lblValue2_P1 es la etiqueta para mostrar valor2 en pgina 1.
lblValue3_P1 es la etiqueta para mostrar valor3 en la pgina 1.
edtValue1_P1 es el EditText entrar valor1 en pgina 1.
pnlPage1 es el contenedor para el diseo de la pgina 1.
pnlMove es el pequeo cuadrado rojo.
X 0, Y0, X 1 y Y1 son utilizadas para memorizar las coordenadas iniciales al mover el cuadrado rojo.

Sub Activity_Create se modifica como a continuacin:


Cuando la rutina se llama por primera vez, inicialice las tres variables de valor.

Programa de ejemplo de actividad tres 12.2

152

Basic4Android Gua del principiante

En Activity_Resume Sub inicializan los parmetros de las vistas de actividad principal.


Init.txt es el fichero con los parmetros de izquierda y de arriba de la pequea pnlMove de la Plaza Roja.
Si el archivo existe lo leemos y establecer los parmetros Left y Top de pnlMove.
Si el archivo no existe nos inicializar el objeto de mapa y configurar los dos primeros parmetros a la izquierda y
Parmetros principales de pnlMove...

Cuando se detiene la actividad de \"Principal\", debido a un cambio de pgina o el programa de cerca, tenemos:
- Ajuste variable Value1 al contenido de edtValue1.Text.
- guardar el mapa en archivo Init.txt.

Para volver a Page1 Page2 o pgina 3, el usuario debe presionar la tecla atrs. Para evitar
el programa se detiene cuando el usuario hace clic, por inadvertencia, un tiempo demasiado, comprobamos en Sub
Activity_KeyPress qu tecla se ha presionado. Y si es la tecla atrs nos muestre un mensaje en un
Cuadro de mensaje preguntando al usuario si realmente desea salir del programa. Si s, entonces establecemos el regreso
valor en False significa que el evento es enviado al OS para cerrar el programa. Si la respuesta es
No, establecemos el valor devuelto en True, lo que significa que nos 'consumir' el evento y el sistema operativo no
detener el programa.

Programa de ejemplo de actividad tres 12.2

153

Basic4Android Gua del principiante

Para mostrar cmo administrar los parmetros de diseo que tenemos el cuadrado rojo pequeo, pnlMove, que puede ser
moverse en la pantalla. La posicin de pnlMove se maneja en Sub Activity_Touch donde obtenemos
tres parmetros:
- Accin
manteniendo el valor de la accin del usuario.
el usuario toca la pantalla.
ACTION_DOWN
el usuario se mueve en la pantalla
ACTION_MOVE
el usuario abandona la pantalla
ACTION_UP
- X
la coordenada x del dedo en la pantalla.
- Y
la coordenada y del dedo en la pantalla.
Para poder mover el pnlMove hacemos lo siguiente:
- Cuando la accin es igual a ACTION_DOWN, el usuario toca la pantalla
nos memorizar las coordenadas de los dedos y las coordenadas de la esquina superior izquierda de
pnlMove (lneas 76 a 79).
-

Cuando la accin es igual a ACTION_MOVE el usuario mueve el dedo sobre la pantalla,


calculamos el desplazamiento relativo, dX y dY, en ambas direcciones y establecer la nueva izquierda
y los parmetros de pnlMove (lneas de 82 a 85).

Cuando la accin es igual a ACTION_UP, el usuario sale de la pantalla y


actualizamos los dos parmetros del objeto de mapa (lneas 88 y 89 =.

Programa de ejemplo de actividad tres 12.2

154

Basic4Android Gua del principiante

En Sub btnPage_Click empezamos la actividad de Page segn qu botn se presion.


- Declaramos un nuevo objeto de botn Enviar.
- Atribuimos al remitente para enviar.
El remitente es la vista del botn que provoc el evento.
- Dependiendo del valor de la etiqueta del objeto sender empezamos la actividad correcta.

Todava tenemos que modificar los archivos de diseo de cuatro:


Principal:
Quitamos btnPage1, que ya no sea necesaria.
Ampliar los dos botones restantes y cambiarlas

Pgina 1:
Aadimos las vistas como en la imagen de la izquierda.
Similares para la pgina 2 y 3 de la pgina.
Los archivos de diseo estn en el proyecto.

12.3 Programa de ejemplo Scrollview

12.3

155

Basic4Android Gua del principiante

Ejemplos de ScrollView

ScrollView es una vista muy verstil para mostrar listas de objetos con datos o usuario vistas de interfaz.
Actualmente, ListViews son limitados a dos lneas de texto y una imagen por el conjunto de datos.
ScrollViews tienen un Panel interno, ms grande que la pantalla, que puede desplazarse verticalmente y mantiene
cualquier tipo de vistas como una distribucin o listas de conjuntos de vista.
Algunas imgenes de ejemplos: (un resumen de ejemplos de ScrollView)
Cuadrcula en TableView...ScrollView

Otro ejemplo de ScrollView

SQLLiteDB

Aadir imageview...

ScrollView, diseos...

HelpScrollView

http:\/\/www.Basic4ppc.com\/F
orum\/Attachments\/basic4andr
oid-updates-Questions\/7324d1
301153817-real-newb-question
-about-how-display-Block-Scro
llable-Text-helpscrollview.jpg

12.3 Programa de ejemplo Scrollview

156

Basic4Android Gua del principiante

12.3.1 Programa de ejemplo ScrollView


Hagamos un ejemplo ScrollView con las siguientes funciones:

Leer un archivo csv y mostrarlo en una tabla basada en un ScrollView.


El ScrollView puede desplazarse verticalmente con el estndar de desplazamiento en funcin de la
ScrollView.
El ScrollView puede tambin desplazar horizontalmente con un Seekbar o dinmicamente con el
dedo en el rectngulo azul inferior (SeekBar visible o no).
Al hacer clic en una celda destaca la fila y la celda, esta rutina permite agregar otras funciones
relacionados con una fila o una celda.
Haga clic en un encabezado, muestra la columna, esta rutina permite agregar funciones relacionadas con un
columna.

12.3 Programa de ejemplo Scrollview

157

Basic4Android Gua del principiante

Definimos las siguientes variables y asigna sus valores predeterminados:


StringUtils1
Se utiliza para leer el archivo csv.
ArgumentException: The incoming
token hasThe
expired.
a new
access Get
token
from
thetoken
Authori
ArgumentException:
incomingGet
token
has expired.
a new
access
from
RowHeight
Alto de una fila en el ScrollView.
RowLineWidth
Ancho de las lneas entre las filas.
RowHeight_1
Altura interna de una fila
RowHeight_1 = RowHeight - RowLineWidth
ColLineWidth
Ancho de las lneas entre las columnas.
ColumnWidth()
Ancho de las columnas diferentes como una matriz
ColumnWidth_1()
Anchura interna de las diferentes columnas.
TotalColumnWidth()
Coordenadas del borde izquierdo de una columna de una matriz.
HeaderColor
Color de fondo de encabezados.
HeaderFontColor
Color de fuente de encabezados.
HeaderLineColor
Color de la lnea de encabezados.
LineColor
Color de lnea celular.
CellColor
Color de lnea de fondo de celda.
FontColor
Color de lnea de fuente de celda.
Alineacin
Alineacin del texto del texto de los encabezados y las clulas.
SelectedRow
ndice de la fila seleccionada.
SelectedRowColor
Color de la fila seleccionada.
SelectedCellColor
Color de la celda seleccionada.
Tipo RowCol (fila como Int, Col como Int)
MoveLeft0
MoveX0
MoveX1
DeltaScroll
DeltaX
Time0

Definir una variable personalizada que contiene un ndice de columna y una fila.
Utilizado para el desplazamiento horizontal.
Utilizado para el desplazamiento horizontal.
Utilizado para el desplazamiento horizontal.
Utilizado para el desplazamiento horizontal.
Utilizado para el desplazamiento horizontal.
Utilizado para el desplazamiento horizontal.

Personalmente, prefiero trabajar con variables en lugar de valores. El mantenimiento y


modificacin de un programa es mucho ms fcil con las variables que con valores numricos.

12.3 Programa de ejemplo Scrollview

158

Basic4Android Gua del principiante

Ahora definimos las opiniones para el programa:


scvPersons
ScrollView para mostrar los datos.
pnlHeader
Panel para mostrar los encabezados.
skbScroll
SeekBar para desplazarse al encabezado y ScrollView.
pnlScroll
Panel para el desplazamiento horizontal 'dinmico'.
Timer1
Temporizador utiliza el desplazamiento horizontal 'dinmico'.

12.3 Programa de ejemplo Scrollview

159

Basic4Android Gua del principiante

Ahora nos inicializar las diferentes opiniones y variables, tenemos:


Inicializar el panel para el desplazamiento horizontal.
Inicializar el componente SeekBar para el desplazamiento horizontal.
Inicializar el ScrollView
Inicializar el ancho de columna interna y las coordenadas izquierdas para cada columna y el total
ancho de todas las columnas.
Inicializar el ancho ScrollView.
Establecer el parmetro Max para el componente Seekbar
Establece el ndice de la fila seleccionada en -1, no hay ninguna fila seleccionada.
Cargar el archivo csv, configurar los encabezados y llenar el ScrollView.
Inicializar el temporizador para el desplazamiento horizontal.

12.3 Programa de ejemplo Scrollview

160

Basic4Android Gua del principiante

Luego leer el archivo csv, llenamos los encabezados y la tabla (ScrollView).


En primer lugar, si existen los encabezados, leemos el archivo csv con los encabezados.
O, si no existen los encabezados, leemos el archivo csv sin los encabezados y establecer el valor predeterminado
nombres de encabezado a Col1, Col2 etc..
Obtener el nmero de columnas.
Mostrar los encabezadosSetHeader(h).
Visualizacin de la tabla, aadiendo las diferentes filas para el ScrollView AddRow(row).

12.3 Programa de ejemplo Scrollview

161

Basic4Android Gua del principiante

Para mostrar los encabezados de nosotros:


Inicializar el panel cabecera.
Establece el color del panel de cabecera en el color de la lnea de encabezado.
Inicializar una etiqueta para cada nombre de columna.
Definir los parmetros diferentes para las etiquetas.
Aadir las etiquetas en el panel de encabezado.
Aadir el panel cabecera a la actividad

12.3 Programa de ejemplo Scrollview

162

Basic4Android Gua del principiante

Llenar una fila de la ScrollView con la rutina de AddRow:


Primero comprobamos si el nmero de clulas es igual al nmero de columnas.
Inicializar una etiqueta para cada celda de la fila.
Establecer los diferentes parmetros de la celda.
Inicializar una variable RowCol, rc, para la etiqueta.
Conjunto rc.Fila para el ndice de fila y rc.COL para el ndice de la columna.
Coloque la etiqueta de la rc.
Aadir cada etiqueta a la ScrollView.
Ajuste la altura del panel interno de la ScrollView.

Nota: al final de una lnea, un carcter de subrayado como en medios de 213 de lnea
'continuar la misma lnea siguiente instruccin'.

12.3 Programa de ejemplo Scrollview

163

Basic4Android Gua del principiante

Otras funciones:
Cell_Click
Haga clic en el evento de una de las celdas de la tabla.
o Dim rc como una fila Col. l Dim y variable como una etiqueta
o Set l igual al remitente, que provoc el evento
o Conjunto rc igual que el parmetro de la etiqueta del remitente
o Llamar a la rutina de SelectRow
o Mostrar en el ttulo de actividades los ndices de fila y columna y el contenido de la celda.

Header_Click
Haga clic en el evento de una de las celdas de encabezado de la tabla.
o Dim l como etiqueta y Dim col como un entero
o Conjunto que igual al remitente
o Establezca col en el parmetro de la etiqueta del remitente, que es el ndice de la columna.
o Mostrar la columna seleccionada en el ttulo de la actividad.

12.3 Programa de ejemplo Scrollview

164

Basic4Android Gua del principiante

SelectRow
Esta rutina gestiona los colores de la fila seleccionada y celular.
Se llama de la rutina Cell_Click
o Dim col como un entero.
o Si hay una fila seleccionada, defina el color de celda normal.
o Establezca la variable de SelectedRow en el nuevo ndice de la fila seleccionada.
o Establecer la fila seleccionada y seleccionar colores de celda.

12.3 Programa de ejemplo Scrollview

165

Basic4Android Gua del principiante

GetView
Obtiene el objeto Label para determinada fila y columna.
o Dim l como una etiqueta.
o Obtiene la vista en la determinada fila y columna, el ndice de la vista en el panel de ScrollView
es igual a Fila * NumberOfColumns + Col.
o Devuelve la etiqueta.

GetCell
Obtiene el texto de la etiqueta para la determinada fila y columna.
o Obtiene la vista de la determinada fila y columna.
o Devolver el parmetro texto de vistas.

SetCell
(no se usa en el programa)
Establece el texto de la etiqueta de la determinada fila y columna.
o Obtiene la vista de la determinada fila y columna
o Establece el parmetro texto de vistas en el valor dado

ClearAll
o Elimina todas las vistas (etiquetas) desde el ScrollView Panel
o Establece la altura del Panel ScrollView 0
o Establece el ndice de fila seleccionado a -1, no hay ninguna fila seleccionada

12.3 Programa de ejemplo Scrollview

166

Basic4Android Gua del principiante

Horizontal con el componente SeekBar


o Establece el parmetro izquierdo del panel de cabecera y el ScrollView.
o El valor SeekBar Max fue establecido en
skbScroll.Max = scvPersons.Width - Activity.Width.

Horizontal desplazamiento con el panel de desplazamiento.


o pnlScroll_Touch y Timer1_Tick.
o Dejo a usted a encontrar cmo estos funcionan.
El principio bsico consiste en calcular la velocidad entre ACTION_DOWN y
ACTION_UP y en la rutina de temporizador para mover dinmicamente el encabezado y el
ScrollView y reducir la velocidad.

13 Lenguaje basic

167

Basic4Android Gua del principiante

13 Lenguaje basic
En programacin, BASIC (una sigla que significa multiuso simblico del principiante
Cdigo de instruccin) es una familia de lenguajes de programacin de alto nivel diseado para ser fcil de usar.
El BASIC Dartmouth original fue diseado en 1964 por John George Kemeny y Thomas
Eugene Kurtz en el Dartmouth College en New Hampshire, Estados Unidos para facilitar el acceso del equipo a noestudiantes de Ciencias. En el momento, casi todo el uso de equipos requeridas escribir software personalizado, que
era algo slo cientficos y matemticos solan hacerlo. El lenguaje y sus variantes
lleg a ser generalizada en microcomputadoras en la dcada de 1970 y 1980.
BASIC sigue siendo popular hasta el da de hoy en un puado de dialectos altamente modificados y nuevos lenguajes
influenciado por BASIC como Microsoft Visual Basic. (fuente Wikipedia).

13.1

Flujo de programa

Este es un resumen de las explicaciones ms detalladas en el ciclo de vida del proceso y la actividad.

El programa va a travs de las rutinas siguientes cuando empezando de arriba a abajo:

13.1.1 Process_Globals rutina


Dedicada a la declaracin de variables de proceso global. Variables que son vlidas durante todo el
vida tiempo del proceso y accesible desde todo el mundo en el programa.

13 Lenguaje basic

168

Basic4Android Gua del principiante

13.1.2 Globals rutina


Dedicada a la declaracin de variables globales de actividad. Variables que son vlidas slo durante la vida
tiempo de la actividad y entraas slo accesibles la actividad. Tan pronto como la actividad est en pausa, estos
las variables son no ms disponibles.

13.1.3 Rutina Activity_Create (cumshot As Boolean)


rea para inicializar las variables de la actividad.
Si las variables u objetos deben ser inicializados una sola vez, la primera vez en el lanzamiento de la aplicacin,
puede utilizar el parmetro de la Declarcin para comprobarlo.

13.1.4 Activity_Resume rutina


Esta rutina se llama cada vez que se inicia una actividad o reanudado, reactiva, aqu puede configurar
los parmetros de configuracin para la nueva actividad actual.

13.1.5 Rutina Activity_Pause (UserClosed As Boolean)


Cuando la actividad se va a hacer una pausa, esta rutina se llama Activity_Pause.
Aqu es necesario guardar los parmetros de actividad que desea volver cuando la actividad es reanudado (reactivado)
Una de las razones ms frecuentes por qu una actividad est en pausa, es un cambio de orientacin.
En ese caso la actividad actual es 'pausa' y reactiva con la nueva orientacin y va a
menos a travs de la rutina de Activity_Resume, pero normalmente a travs de Globals, Activity_Create y
Activity_Resume.
La variable UserClosed puede utilizarse para distinguir si la actividad se ha parado por la
Sistema operativo (ej: cambio de orientacin) o por el usuario (ex: haga clic en el botn back).

13 Lenguaje basic

169

Basic4Android Gua del principiante

Flujo del programa: ejemplo: MyFirstProgram.

1. Las programa de llamadas


Process_Globals.
En el ejemplo no hay ninguna
cdigo.
2. A continuacin, el programa se llama
Globals.
Declara las variables.

3. A continuacin, el programa se llama


Activity_Create.
Carga el diseo de \"Principal\".
Llama a la subrutina nueva.
4. Es el cdigo en Sub New
ejecutado.
Al llegar a la final de Sub, la
programa vuelve a la
lnea siguiente nueva.
En este caso la lnea 25.

5. Se llama Activity_Resume.
Ningn cdigo.
6. El programa espera un
evento.
7. Si el usuario hace clic en el
Botn btnAction
Es la btnAction_Click Sub
llama y el cdigo dentro de
el Sub es ejecutado.
8. El programa espera
otro evento.

13 Lenguaje basic

170

Basic4Android Gua del principiante

13.2 Expresiones
Una expresin en un lenguaje de programacin es una combinacin de valores explcitos, constantes, variables,
operadores y funciones que se interpretan segn las normas particulares de precedencia y de
Asociacin para un lenguaje de programacin determinado, que calcula y luego produce (retornos)
otro valor. Este proceso, como para expresiones matemticas, se denomina evaluacin. El valor puede
ser de varios tipos, como numrico, cadena y lgicos (fuente Wikipedia).
Por ejemplo, 2 + 3 es una expresin aritmtica y programacin que evala a 5. Una variable es
una expresin porque es un puntero a un valor en la memoria, entonces y + 6 es una expresin. Un ejemplo de
una expresin relacional es 4 = 4, que se evala como True (fuente Wikipedia).

13.2.1 Expresiones matemticas


Operador

Ejemplo

Nivel de prioridad

x + y

Adicin

x - y

Resta

x * y

Multiplicacin

\/

x \/ y

Divisin

x y Mod

Mdulo

Poder de

Mod

y
Alimentacin
Power(x,y) x

Operacin

Nivel de prioridad: en una expresin, operaciones con nivel 1 se evalan antes de las operaciones con
nivel 2, que son evaluados antes de las operaciones con el nivel 3.
Ejemplos:
4 + 5 * 3 + 2 = 21

> 4 + 15 + 2

(4 + 5) * (3 + 2) = 45

>9*5

(4 + 5) * (3 + 2) = 405
Power(4+5,2)*(3+2)

>9*5

11 Mod 4 = 3

> Mod es el resto del 10 \/ 4

23

Power(23,3)

-2 = - 4
2
(-2) = 4

> 81 * 5

> 23 en el poder de 3

13 Lenguaje basic

171

Basic4Android Gua del principiante

13.2.2 Expresiones relacionales


En Ciencias de la computacin en expresiones relacionales operador pruebas de algn tipo de relacin entre dos
entidades. Estos incluyen la igualdad numrica (por ejemplo, 5 = 5) y las desigualdades (por ejemplo, 4 > = 3).
En B4A estos operadores devolucin verdadero o falso, dependiendo de si la relacin condicional
entre los dos operandos posee o no (fuente Wikipedia).
Operador Ejemplo

Utilizada para probar

x=y

la equivalencia de los dos valores

<>

y x <>

la equivalencia negada de dos valores

>

x>y

Si el valor de la expresin de la izquierda es mayor que la de la derecha

<

x<y

Si el valor de la expresin de la izquierda es menor que el de la derecha

>=

x>=y

Si el valor de la expresin de la izquierda es mayor o igual a la de la derecha

<=

x<=y

Si el valor de la expresin de la izquierda es menor o igual a la de la derecha

13.2.3 Expresiones booleanas


En Ciencias de la computacin, una expresin booleana es una expresin que produce un valor booleano cuando
evaluadas, es decir, uno de verdadero o falso. Una expresin booleana puede estar compuesta de una combinacin de
las constantes booleanas True o False, variables de tipo Boolean, operadores de valor booleano, y
Funciones de valor booleano (fuente Wikipedia).
Operadores booleanos se utilizan en sentencias condicionales como IF-Then y Select-Case.
Operador

Comentario

Booleano o

Y
(No)

Z=XOY

Z = True si x o y es igual a True o ambos son verdadero

Boolean Y Z = X Y Y Z = True si x e y son ambas igual a True


Booleano no

X = True Y = Not(X) > Y = False


O

Falso

Falso

Falso

Falso

True

Falso

True

Falso

Falso

True

True

Falso

True

True

True

True

13 Lenguaje basic

13.3

172

Basic4Android Gua del principiante

Sentencias condicionales

Estn disponibles diferentes sentencias condicionales en Basic.

13.3.1 Si entonces End If


La estructura If-Then-Else permite operar pruebas condicionales y ejecutar secciones de cdigo diferente
segn el resultado de la prueba.
Caso general:

La estructura If-Then-Else funciona como sigue:


Si palabra clave,
Prueba1es ejecutado.
1. Al llegar a la lnea con la
empresa1
2. Si el resultado es verdadero, entonces
se ejecuta hasta que la lnea con la Else If palabra clave.
End If palabra clave y contina.
Y salta a la siguiente lnea el
test2 es ejecutado.
3. Si el resultado es False, entonces
code2 se ejecuta hasta que la lnea con la Else palabra clave.
4. Si el resultado es verdadero, entonces
End If palabra clave y contina.
Y salta a la siguiente lnea el
Code3 se ejecuta y contina en la siguiente lnea el
Final
5. Si el resultado es False, entonces
Si palabra clave.
Las pruebas pueden ser cualquier tipo de prueba condicional con dos posibilidades de verdadero o falso.
Algunos ejemplos:
La ms simple estructura If-Then.
Lo mismo pero en una lnea.
La ms simple estructura If-Then-Else.

Lo mismo pero en una lnea.


Personalmente, prefiero la estructura en varias lneas, mejor legibles.
Una vieja costumbre de HP Basic hace algunas dcadas, este bsico aceptado slo una instruccin por lnea.
Nota. Diferencia entre:
B4A
VB
Else If

ElseIf

En B4A hay un personaje en blanco entre Else y

Si.

13 Lenguaje basic

173

Basic4Android Gua del principiante

13.3.2 Seleccionar caso


El Select - estructura Case permite comparar un TestExpression con otros Expresiones y
para ejecutar las secciones de cdigo diferente segn los partidos entre el TestExpression y
Expresiones.
Caso general:
TestExpression es la expresin para probar.
ExpressionList1 es una lista de expresiones para comparar
TestExpression
Para
ExpressionList2 es otra lista de expresiones para comparar
TestExpression
Para

El Select - estructura Case funciona como sigue:


1. El TestExpression se evala.
2. Si un elemento en la ExpressionList1 partidos TestExpression a continuacin, ejecuta
empresa1
End Select palabra clave.
y contina en la siguiente lnea el
3. Si un elemento en la ExpressionList2 partidos TestExpression a continuacin, ejecuta
code2 y contina en la siguiente lnea el
End Select palabra clave.
TestExpression ejecuta Code3
4. Para ninguna coincidencia de expresin
End Select palabra clave.
y contina en la siguiente lnea el
TestExpression puede ser cualquier expresin o valor.
ExpressionList1 es una lista de valores o expresiones.

Ejemplos:
El valor de la variable es un valor numrico.
El TestExpression es la suma de un + b
El TestExpression es un personaje en

13 Lenguaje basic

174

Basic4Android Gua del principiante

Nota. Diferencias entre:


B4A
VB
Seleccione
Seleccione el caso
Caso 1,2,3,4,8,9, 10Case 1 A 4, 8 A 9
En VB, la palabra claveCaso se agrega despus deSeleccione
la
palabra clave.
VB acepta Caso 1 A 4 , esto no est implementado en B4A.

13 Lenguaje basic

13.4

175

Basic4Android Gua del principiante

Estructuras de bucle

Estructuras de bucle diferentes estn disponibles en Basic.

13.4.1 Para Next


En un bucle de ForNext un mismo cdigo ser ejecutado un nmero determinado de veces.
Ejemplo:
i
N1
N2
N3

variable incremental
valor inicial
valor final
paso

El bucle de ForNext funciona como sigue:


1. Al principio, la variable incremental es igual a la n1 de valor inicial.
i = n1
2. El cdigo especfico entre el Paray Siguiente
Palabras clave es ejecutado.
3. Al llegar a la siguiente, la variable incremental se incrementa por el paso valor n3.
i = i + n3.
Para, compara si la variable incremental es inferior o igual a
4. El programa salta a
el valor final de n2.
probar si me < = n2
5. Si s, el programa contina en el paso 2, la lnea siguiente a la Parapalabra clave.
6. Si No, el programa contina en la siguiente lnea el Siguiente
palabra clave.
Si el valor es igual a '+ 1' la palabra clave de paso no es necesario.
es el mismo que
La variable de paso puede ser negativa.

Es posible salir For Next bucle con el

palabra clave.
Salida

En este ejemplo, si la variable a es igual a 0


A continuacin, salir del bucle.

13 Lenguaje basic

176

Nota: Las diferencias entre


B4A
Siguiente
Salida

Basic4Android Gua del principiante

VB
Siguiente i
Salida para

En VB:
Siguiente
Palabra clave.
La variable de incremento se aade despus de la
la palabra clave.
Se especifica el tipo de bucle despus deSalida

13.4.2 Do - Loop
Existen varias configuraciones:
pruebaes cualquier expresin
Cdigomientraspruebaes True
Ejecuta el
pruebaes cualquier expresin
Cdigohasta pruebaes True
Ejecuta el

El Do mientras - bucle bucle funciona como sigue:


pruebase evala.
1. Al principio,
Cdigo
2. Si es True, se ejecuta a continuacin
3. Si False contina en la lnea siguiente a la palabra clave Loop.
El Do hasta - bucle bucle funciona como sigue:
pruebase evala.
1. Al principio,
Cdigo
2. Si es False, entonces se ejecuta
3. Si True contina en la lnea siguiente a la palabra clave Loop.
Es posible salir de una estructura de bucle Do con la palabra clave de salida.

Si un = 0 a continuacin, salir del bucle

Ejemplos:
Nota: La diferencia entre:
B4A
Salida

VB
Bucle de salida

En VB se especifica el tipo de bucle despus deSalida


la palabra clave.
VB tambin acepta los siguientes lazos, que no son compatibles con B4A.

13 Lenguaje basic

177

Basic4Android Gua del principiante

13.5 Subs
Una subrutina (\"Sub\") es un fragmento de cdigo. Puede ser de cualquier longitud, y tiene un nombre distintivo
y un alcance definido (en los medios de alcance de las variables anteriormente). En el cdigo de Basci4Android, un
subrutina se llama \"Sub\" y es equivalente a procedimientos, funciones, mtodos y
subtitulos en otros lenguajes de programacin. Las lneas de cdigo dentro de un Sub se ejecutan desde
primero al ltimo, como se describe en el captulo de flujo del programa.
Se recomienda no tener demasiados Subs, reciben menos legibles.

13.5.1 Sentencias para declarar


Un Sub se declara de la siguiente manera:
Sub CalcInterest (tasa de Capital como doble, doble) como doble
Devolver Capital * tasa \/ 100
End Sub

Comienza con la palabra clave


Sub, seguido del nombre del Sub, seguido de una lista de parmetros, seguida
por el tipo de valor devuelto y termina con las palabras
End
claveSub.
Subs siempre se declaran en el nivel superior del mdulo, puede anidar dos Subs
uno dentro del otro.

13.5.2 Llamando a un Sub


Cuando desea ejecutar las lneas de cdigo en un Sub, simplemente escribes nombre del Sub.
Por ejemplo:

Inters = CalcInterest(1234, 5.2)

Inters
CalcInterest
1235
5,25

Valor devuelto por la Sub.


Nombre de Sub.
Capitalvalue transmitida a la Sub.
Tasa devalor transmitido a la Sub.

13.5.3 Llamando a un Sub desde otro mdulo


Una subrutina declarada en un mdulo de cdigo puede acceder desde cualquier otro mdulo, pero el nombre de la
rutina debe tener el nombre del ndulo donde fue declarada como prefijo.
Ejemplo: Si la rutina de CalcInterest fueron declarada en el moduel MyModule entonces llamar a la rutina
debe ser:
Inters = MyModule.CalcInterest(1234, 5.2)

En lugar de:

Inters = CalcInterest(1234, 5.2)

13 Lenguaje basic

178

Basic4Android Gua del principiante

13.5.4 Nomenclatura
Bsicamente, puede nombrar a un Sub cualquier nombre que es legal para una variable. Se recomienda
CalcInterest en el ejemplo, as que usted puede indicar lo que
nombre del Sub con un nombre significativo, como
hace de la lectura del cdigo.
No hay lmite en el nmero de Subs puede agregar a su programa, pero no es
permite para tener dos Subs con el mismo nombre en el mismo mdulo.

13.5.5 Parmetros
Los parmetros pueden transmitirse a la Sub. La lista sigue al nombre de sub. La lista de parmetros es poner
soportes.
Los tipos de parmetro deben declararse directamente en la lista.

En B4A, los parmetros se transmiten por valor y no por referencia.

13.5.6 Valor devuelto de


Un sub puede devolver un valor, esto puede ser cualquier objeto.
Devolver un valor se realiza con la palabra clave Return.
El tipo del valor devuelto es aadido despus de la lista de parmetros.

13 Lenguaje basic

179

Basic4Android Gua del principiante

13.6 Eventos
En la programacin orientada a objetos tenemos objetos que pueden reaccionar sobre las acciones de otro usuario llamadas
eventos.
El nmero y el tipo de eventos que puede elevar un objeto dependen del tipo del objeto.
Objetos de la interfaz de usuario se llaman 'Vistas' en Android.
Resumen de los eventos de diferentes puntos de vista:

Pun
GEFinisl d

Tun
a. C.
haESNd

Vun
lUEChaESNd

TeXT
ChaESNd

FOCnosChaESNd

ENT
erPressed

Cl ckedChange

ItemClick

KeyPress

Up

Dujon

TOUC
h

ItemLongClick

Vistas
Actividad
Botn
Casilla de verificacin
EditText
ImageView
Etiqueta
ListView
Panel
RadioButton
SeekBar
Spinner
TabHost
ToggleButton
Vista Web

LongClick

Click

Eventos

13 Lenguaje basic

180

Basic4Android Gua del principiante

Los eventos ms comunes son:

Haga clic en Evento que se provoca cuando el usuario hace clic en la vista.
Ejemplo:

LongClick
Ejemplo:

Toque (Accin como Int, X como flotador, Y como Float)


Evento que se provoca cuando el usuario toca la pantalla.

Evento que se provoca cuando el usuario hace clic en la vista y mantiene pulsado durante un rato.

Se manejan tres acciones diferentes:


-Activity.Action_DOWN, el usuario toca la pantalla.
-Activity.Action_MOVE, el usuario mueve el dedo sin salir de la pantalla.
-Activity.Action_UP,
el usuario sale de la pantalla.
Se dan las coordenadas x an y de la posicin del dedo.
Ejemplo:

CheckChanged (Comprobar As Boolean)


Evento que se provoca cuando el usuario hace clic en una casilla de verificacin o un botn de opcin
Comprobado es igual a True si est activada la vista o False si no est marcada.
Ejemplo:

13 Lenguaje basic

181

Basic4Android Gua del principiante

KeyPress (KeyCode como Int) Como Boolean


Evento que se provoca cuando el usuario presiona una tecla fsica o virtual.
KeyCode es el cdigo de la tecla presionada, puede recibirlos con la palabra clave cdigos de tecla.

El evento puede devolver cualquiera:


-True, el evento se 'consume', considerado por el sistema operativo como ya se ha ejecutado y
no se realiza ninguna otra accin.
-Falso, el evento no es consumido y transmitido al sistema para futuras acciones.
Ejemplo:

13 Lenguaje basic

13.7

182

Basic4Android Gua del principiante

Bibliotecas

Bibliotecas de aadir ms objetos y funcionalidades a B4A.


Algunas de estas bibliotecas se envan con B4A y son parte del sistema de desarrollo estndar.
Otros, a menudo desarrollado por usuarios como Andrew Graham (agraham), puede ser descargado (por registrado
slo usuarios) para agregar funcionalidades suplementarias para el entorno de desarrollo B4A.
Cuando usted necesita una biblioteca, usted tiene que:
- Comprobar en la ficha de Lib, si ya tienes la biblioteca.
- Para bibliotecas adicionales, compruebe si es la versin ms reciente.
- Si s, entonces revise la biblioteca en la lista para seleccionarlo.

Si no, descargue la biblioteca, descomprimirlo y copiar la


<LibraryName>.jar y archivos .xml de <LibraryName>a la carpeta de bibliotecas adicionales.
Reinicie el IDE y compruebe la biblioteca en la lista de la ficha de Lib para seleccionarlo.

13.7.1 Las bibliotecas estndar de


Las bibliotecas estndar de B4A se guardan en la carpeta de las bibliotecas en la carpeta del programa B4A.
Normalmente en: C:\\Program Files\\Anywhere Software\\Basic4android\\Libraries

13.7.2 Carpeta de bibliotecas adicionales


Para las bibliotecas adicionales es til configurar una carpeta especial para guardarlos en otro lugar.
Por ejemplo: D:\\Basic4Android\\AddLibraries
Al instalar una nueva versin de B4A, todas las bibliotecas estndar se actualizan automticamente, pero la
bibliotecas adicionales no estn incluidas. La ventaja de la carpeta especial es que no necesita
se preocupan por ellos porque esta carpeta no se ve afectada al instalar la nueva versin de B4A.
Las bibliotecas adicionales no se actualizan sistemticamente con la nueva versin de B4A.
Cuando se inicia el IDE, busca primero para las bibliotecas disponibles en la carpeta de las bibliotecas de B4A y luego
en la carpeta de las bibliotecas adicionales.

13 Lenguaje basic

183

Basic4Android Gua del principiante

Si configura una carpeta especial bibliotecas adicionales debe especificarlo en el IDE.


En el men Herramientas \/ configurar rutas de acceso:

Introduzca el nombre de la carpeta y haga clic en

13.7.3 Error mensaje \"falta una referencia de la biblioteca?\"


Si recibe este mensaje, significa que ha olvidado comprobar la biblioteca especificada en la lista de la ficha de Lib!

13 Lenguaje basic

184

Basic4Android Gua del principiante

13.8 Manipulacin de cadenas


Basic4Android permite manipulaciones de cadenas como otros idiomas bsicos pero con algunas diferencias.
Estas manipulaciones pueden hacerse directamente en una cadena.
Ejemplo:
Resultado:
123, 234; 45; 23
Las diferentes funciones son:
Devuelve el carcter en el ndice especificado.
CharAt(Index)
Lexicogrficamente compara la cadena con la otra cadena.
CompareTo(Other)
Comprueba si la cadena contiene la cadena SearchFor dada.
Contains(SearchFor)

Devuelve True si la cadena termina con la subcadena de sufijo determinada.


EndsWith(Suffix)
EqualsIgnoreCase(Other) devuelve True si dos cadenas son iguales ignorando su caso.
Codifica la cadena de caracteres en una nueva matriz de bytes.
GetBytes(Charset)
Devuelve el ndice de la primera aparicin de SearchFor en el
IndexOf(SearchFor)
cadena.
Devuelve el ndice de la primera aparicin de SearchFor
IndexOf2(SearchFor, Index)
en la cadena. Inicia la bsqueda en el ndice especificado.
LastIndexOf(SearchFor) Devuelve el ndice de la primera aparicin de SearchFor en el
cadena. Inicia la bsqueda del final de la cadena.
Devuelve la longitud, el nmero de caracteres, de la cadena.
Legnth
Devuelve una nueva cadena resultante de la sustitucin de
Replace (destino, reemplazo)
todas las apariciones de destino con reemplazo.
Devuelve True si esta cadena comienza con el prefijo especificado.
StartsWith(Prefix)
Devuelve una nueva cadena que es una subcadena de la cadena original.
Substring(BeginIndex)
La nueva cadena incluir el carcter BeginIndex y se extender hasta el final de la
cadena.
Devuelve una nueva cadena que es una subcadena de la
Substring2(BeginIndex,EndIndex)
cadena original. La nueva cadena incluir el carcter BeginIndex y se extender a
el carcter EndIndex, no incluyendo el ltimo carcter.
Devuelve una nueva cadena que es el resultado de la menor esta cadena de la carcasa.
ToLowerCase
Devuelve una nueva cadena que es el resultado del alto cuerpo de esta cadena.
ToUpperCase
Devuelve una copia de la secuencia original sin ningn iniciales o finales
Trim

espacios en blanco.
Nmero de formato, mostrar los nmeros como cadenas con diferentes formatos, hay dos palabras clave:
NumberFormat (nmero doble, MinimumIntegers como Int, MaximumFractions como Int)
NumberFormat (12345.6789, 0, 2) = 12,345.68
= 001
NumberFormat (1, 3, 0)
pueden utilizar variables.
NumberFormat (valor, 3, 0)
NumberFormat (valor + 10, 3, 0) pueden utilizar las operaciones aritmticas.
NumberFormat ((lblscore.Texto + 10), 0, 0) Si una variable es una cadena agregar parntesis.

NumberFormat2 (nmero como doble, MinimumIntegers como Int, MaximumFractions como


Int, MinimumFractions como Int, GroupingUsed As Boolean)
= 12,345.670
NumberFormat2 (12345.67, 0, 3, 3, True)

13 Lenguaje basic

13.9

185

Basic4Android Gua del principiante

Temporizadores

Un objeto Timer genera eventos de garrapatas en los intervalos especificados. Utilizando un temporizador es una buena alter
gancho largo, ya que permite que el subproceso de la interfaz de usuario manejar otros eventos y mensajes.
Tenga en cuenta que los eventos del temporizador no disparar mientras el subproceso de la interfaz de usuario est ocupa
Llame a palabra clave DoEvents).
Eventos del temporizador no se activar cuando se detiene la actividad, o si es un dilogo de bloqueo (como Msgbox)
visible.
Tambin es importante desactivar el temporizador cuando la actividad es una pausa y luego activarlo cuando se
se reanuda. Esto ahorra CPU y batera.
Tiene un temporizador:
Tres parmetros.
o Inicializar Inicializa el temporizador con dos parmetros, el EventName y el
intervalo.
Timer1.Initialize (EventName como cadena, intervalo de tiempo)
Ej.: Timer1.Initialize (\"Timer1\", 1000)
Establece el intervalo del temporizador en milisegundos.
o Intervalo
Timer1. Intervalo = intervalo
Gxx Timer1.Interval = 1000segundo 1
o Habilitado Habilita o deshabilita al temporizador. Es False de forma predeterminada.
Ej.: Timer1.Enabled = True

Un evento
o Garrapata La rutina de la garrapata se llama cada intervalo de tiempo.
Gxx Sub Timer1_Tick

El temporizador debe declararse en una rutina de Process_Global.

Pero debe ser inicializado en la rutina de Activity_Create en el mdulo donde la garrapata de temporizador
se utiliza la rutina del evento.

Y la rutina del evento Tick del Timer.


Esta rutina se llamar cada segundo (1000 milisegundos) por el sistema operativo.

Encontrar un ejemplo en el programa de ejemplo RotatingNeedle.

13 Lenguaje basic

186

Basic4Android Gua del principiante

13.10 Archivos
Muchas aplicaciones requieren acceso a un almacenamiento persistente. Son los dos tipos ms comunes de almacenamiento
archivos y bases de datos.

13.10.1

Objeto de archivo

El objeto predefinido Archivo


tiene una serie de funciones para trabajar con archivos.
Ubicaciones de archivos - all son varios lugares importantes donde puede leer o escribir archivos.
File.DirAssets
La carpeta de activos incluye los archivos que se agregaron con el administrador de archivos en el IDE.
Es la carpeta de archivos en la carpeta del proyecto.
Estos archivos son de slo lectura.
No puede crear nuevos archivos en esta carpeta (que en realidad se encuentra dentro del archivo apk).
Si tiene un archivo de base de datos en la carpeta Dir.Assets debers copiarlo a otra carpeta antes de
puede utilizarlo.
File.DirInternal \/ File.DirInternalCache
Estas dos carpetas se guardan en la memoria principal del dispositivo y son privadas para su aplicacin.
Otras aplicaciones no pueden acceder a estos archivos.
La carpeta de cach puede obtener eliminada por el sistema operativo Si necesita ms espacio.
File.DirRootExternal
La carpeta de raz de la tarjeta de almacenamiento.
File.DirDefaultExternal
La carpeta predeterminada para su aplicacin en la tarjeta SD.
La carpeta es: datos < tarjeta de almacenamiento > \/ Android \/ \/ < paquete > \/files\/
Se crear si es necesario.
Tenga en cuenta que llamar a cualquiera de los dos anteriores propiedades agregar el permiso de EXTERNAL_STORAGE
para su aplicacin.
Sugerencia: Puede comprobar si hay una tarjeta de almacenamiento y si est disponible con
File.ExternalReadable y File.ExternalWritable.
Para comprobar si un archivo ya existe uso:
File.exists (Dir como cadena, FileName As String)
Devuelve True si el archivo existe y False si no.
El objeto de archivo incluye varios mtodos para escribir en archivos y lectura de archivos.
Para poder escribir en un archivo o leer desde un archivo, se debe abrir.

13 Lenguaje basic

187

Basic4Android Gua del principiante

File.OpenOutput (Dir como cadena, nombre de archivo como cadena, anexar As Boolean)
-Abre el archivo dado para la salida, la anexar parmetro indica si el texto se agregar a la
final del archivo existente o no. Si el archivo no existe se crear.
File.OpenInput (Dir como cadena, FileName As String)
-Abre el archivo para lectura.
File.WriteString (Dir como cadena, nombre de archivo como cadena, texto As String)
-Escribe el texto en un archivo nuevo.
File.ReadString (Dir como cadena, FileName As String) As String
-Lee un archivo y devuelve su contenido como una cadena.

File.WriteList (Dir como cadena, nombre de archivo como cadena, lista como lista)
-Escribe todos los valores almacenados en una lista en un archivo. Todos los valores se convierten al tipo de cadena si es nec
valor se almacenar en una lnea de separare.
Tenga en cuenta que si el valor contiene el carcter de nueva lnea ser guardado durante ms de una lnea y cuando
leerla, se leer como varios elementos.
File.ReadList (Dir como cadena, FileName As String) como lista
-Lee un archivo y lo almacena cada lnea como un elemento de una lista.

File.WriteMap (Dir como cadena, nombre de archivo como cadena, mapa, mapa)
-Toma un objeto de mapa que contiene pares de clave y valor y lo almacena en un archivo de texto. El archivo
formato es conocido como archivo de propiedades Java: .properties - Wikipedia, la enciclopedia libre
El formato de archivo no es demasiado importante, a menos que el archivo se supone para ser editado manualmente. Este form
es fcil editarlo manualmente.
Un uso comn de File.WriteMap es para guardar un mapa de \"configuraciones\" en un archivo.

File.ReadMap (Dir como cadena, FileName As String) como mapa


-Lee un archivo de propiedades y devuelve sus pares de clave y valor como un objeto de mapa. Tenga en cuenta que e
entradas pueden ser diferentes de la orden original.
Algunas otras tiles funciones:
File.Copy (DirSource As String, ello como cadena, DirTarget As String, FileTarget As String)
-Copia el archivo de origen desde el directorio de origen en el archivo de destino en el directorio de destino.
Tenga en cuenta que no es posible copiar archivos a la carpeta de activos.
File.Delete (Dir como cadena, FileName As String)
-Elimina el archivo del directorio dado.
File.Listfiles (Dir como cadena) como lista
-Enumera los archivos y subdirectorios del directorio diven.
Ejemplo:
Dim List1 como lista

List1 = File.ListFiles(File.DirRootExternal)

List1 puede ser 'dimed' en Sub Globals

File.Size (Dir As String FileName As String)


-Devuelve el tamao en bytes del archivo especificado.
Este mtodo no es compatible con archivos en la carpeta de activos.

13 Lenguaje basic

13.10.2

188

Basic4Android Gua del principiante

Nombres de archivo

Los nombres de archivo Android permiten siguientes caracteres:


un a-z, A-z, 0 a 9 puntos. subrayado _ e incluso despus de caracteres + -%
Espacios y caracteres siguientes *? no se permiten.
Ejemplo: MyFile.txt
Tenga en cuenta que los nombres de archivo Android son case sensitive!
MyFile.txt es diferente de
myfile.txt

13.10.3

Subcarpetas

Puede definir las subcarpetas en Android con.


File.MakeDir (File.DirInternal, \"Imgenes\")

Para acceder a la subcarpeta debe agregar el subfoldername a la foldername con \/ se situe.


ImageView1.Bitmap = LoadBitmap (File.DirInternal

O agregar el subfoldername antes del nombre de archivo se situe \/.

ImageView1.Bitmap = LoadBitmap (File.DirInternal, \"Pictures\/test1.png\")

Ambas posibilidades de trabajo.

13 Lenguaje basic

13.10.4

189

Basic4Android Gua del principiante

TextWriter

Hay dos otras funciones tiles para archivos de texto: TextWriter y TextReader:
TextWriter.Initialize (OutputStream como OutputStream)
-Inicializa un objeto TextWriter como un flujo de salida.
Ejemplo:

Dim Writer As TextWriter


Writer.Initialize (File.OpenOutput (File.DirRootExternal, \"Test.txt\", False))

Escritor podra ser 'dimed' en Sub Globals.

TextWriter.Initialize2 (OutputStream como OutputStream, codificacin como cadena)


-Inicializa un objeto TextWriter como secuencia de salida.
-Codificacin indica la pgina de cdigos (tambin llamado conjunto de caracteres), el texto de codificacin (ver captulo sig
Ejemplo:

Dim Writer As TextWriter

Writer.Initialize2 (File.OpenOutput (File.DirRootExternal,\"Test.txt\", False), \"ISO-8859-1\")

Escritor podra ser 'dimed' en Sub Globals.


TextWriter.Write (texto As String)
-Escribe el texto en la secuencia.
TextWriter.WriteLine (texto As String)
-Escribe el texto en la secuencia seguida de un carcter de nueva lnea Chr(10) LF.
TextWriter.WriteList (lista como lista)
-Escribe cada elemento en la lista como una sola lnea.
Tenga en cuenta que un valor que contiene CRLF se guardar como dos lneas (que volver dos artculos cuando
lectura con ReadList).
Todos los valores se convierten en cadenas.
TextWriter.Close
-Cierra la secuencia.
Ejemplo:

13 Lenguaje basic

13.10.5

190

Basic4Android Gua del principiante

TextReader

Hay dos otras funciones tiles para archivos de texto: TextWriter y TextReader:
TextReader.Initialize (InputStream como InputStream)
-Inicializa un TextReader como una secuencia de entrada.
Ejemplo:

Dim Reader TextReader


Reader.Initialize (File.InputOutput (File.DirRootExternal, \"Test.txt\"))

Lector podra ser 'dimed' en Sub Globals.


TextReader.Initialize2 (InputStream como InputStream, codificacin como cadena)
-Inicializa un TextReader como una secuencia de entrada.
-Codificacin indica la pgina de cdigos (tambin llamado conjunto de caracteres), la codificacin de texto.
Ejemplo:

Dim Reader TextReader

Reader.Initialize (File.OpenInput (File.DirRootExternal, \"Test.txt\"), \"ISO-8859-1\")

Lector podra ser 'dimed' en Sub Globals.


TextReader.ReadAll As String
-Lee todo el texto restante y cierra la secuencia.
Ejemplo:

TXT = Reader.ReadAll

TextReader.ReadLine As String
-Lee la lnea siguiente de la secuencia.
Los caracteres de lnea nueva no se devuelven.
Devuelve Null si no hay no hay ms caracteres a leer.
Ejemplo:

TextReader.ReadList como lista


-Lee el texto restante y devuelve un objeto List llenado de las lneas.
Cierra la secuencia cuando termine.
Ejemplo:

List1 = Reader.ReadList

13 Lenguaje basic

13.10.6

191

Basic4Android Gua del principiante

Codificacin de texto

Codificacin de texto o codificacin de caracteres consiste en un cdigo que pares cada carcter de un determinado
repertorio con otra cosa. Otros trminos como carcter conjunto (charset) y a veces de carcter
pgina Mapa o cdigo se usan casi indistintamente (fuente Wikipedia).
El carcter predeterminado en Android es Unicode UTF-8.
En Windows el carcter ms comunes conjuntos son ANSII y ANSIS.
ASCII incluye definiciones para 128 caracteres, 33 son caracteres no imprimibles control (ahora
en su mayora obsoletos) que afectan a cmo se procesa el texto y el espacio.
ANSI, Windows-1252 o CP-1252 es un personaje de codificacin del alfabeto latino, utilizado por
por defecto en los componentes heredados de Microsoft Windows en ingls y algunos otros occidentales
idiomas con 256 definiciones (un byte). Los primeros 128 caracteres son los mismos como en la
Codificacin ASCII.

Muchos archivos generados por los programas de Windows estn codificados con el conjunto de caracteres en el oeste de AN
pases. Por ejemplo: archivos csv de Excel, archivos de Bloc de notas por defecto.
Pero con el Bloc de notas, los archivos pueden guardarse con UTF-8 codificacin.
Android puede utilizar el siguiente conjuntos de caracteres:
predeterminado el conjunto de caracteres
UTF-8
UTF -16
SER UTF - 16
UTF - LE
US-ASCII Conjunto de caracteres ASCII
Conjunto de caracteres ISO-8859-1 casi equivalente a la ANSI
Para leer archivos de Windows codificados con ANSI debe usar el conjunto de caracteres ISO-8859-1.
Si necesita escribir archivos para su uso con Windows tambin se debe utilizar el conjunto de caracteres ISO-8859-1.
Otra diferencia entre Windows y Android es el fin del personaje de lnea:
Android, slo el carcter de LF (Line Feed) Chr(10) se agrega al final de una lnea.
Windows, dos caracteres CR (CHR de retorno de carro y Chr(10) LF se agregan a la
final de una lnea. Si necesita escribir archivos para Windows debe agregar CR usted mismo.
Es el smbolo de final de lnea:
CRLF
Basic4Android
CRLF
Basic4PPC

Chr(10)
Chr(10)

Para leer o escribir archivos con una codificacin diferente que debe utilizar los objetos TextReader o TextWriter
con los mtodos de Initialize2. Incluso para leer archivos csv.

13 Lenguaje basic

192

Basic4Android Gua del principiante

Consejo de lectura de archivos csv de Excel:


Usted puede escoger:
En el escritorio, cargar el archivo csv en un editor de texto como Bloc de notas o Notepad ++
Guarde el archivo con codificacin UTF-8
O

Codificacin de leer todo el archivo con TextReader.Initialize2 y \"ISO-8859-1\".


Guardarlo con TextWriter.Initialize con la codificacin estndar de Android.
Lea el archivo LoadCSV o LoadCSV2 de la biblioteca StringUtils.

13 Lenguaje basic

193

Basic4Android Gua del principiante

13.11 Listas
Las listas son similares a los arreglos dinmicos, descripciones detalladas de todas las funciones son en el captulo lista.
A menudo se utilizan listas y muchos ejemplos pueden encontrarse en los ejemplos de cdigo:
LoadCSV, SaveCSV
StringUtils
InsertMaps, UpdateRecord, ExecuteMemoryTable, ExecuteSpinner,
Mdulo DBUtils
ExecuteListView, ExecuteHtml, ExecuteJSON
para sostener las diferentes variables.
Mdulo de grficos
Una lista debe inicializarse antes de que se puede utilizar.
Inicializa una lista vaca.
Inicializar

Dim List1 como lista


List1.Initialize
List1.AddAll (matriz como Int (1, 2, 3, 4, 5))

Initialize2 (unamatriz)
Inicializa una lista con los valores indicados. Este mtodo se debe utilizar para convertir matrices a listas.
Tenga en cuenta que si se pasa una lista a este mtodo y luego ambos objetos compartirn la misma lista y si
se pasa una matriz de que la lista ser de un tamao fijo.
Lo que significa que ms tarde no se puede agregar o quitar elementos.
Ejemplo 1:
Dim List1 como lista
List1.Initialize2 (matriz como Int (1, 2, 3, 4, 5))

Ejemplo 2:

Dim List1 como lista


Dim SomeArray(10) As String
' Llenar la matriz
List1.Initialize2(SomeArray)

Puede agregar y quitar elementos de una lista y cambiar su tamao en consecuencia.


Con cualquiera:
Agregar (elemento As Object)
Agrega un valor al final de la lista.
List1.Add(Value)

AddAll (matriz como String(\"value1\", \"value2\"))


Agrega todos los elementos de una matriz al final de la lista.
List1.AddAll(List2)
List1.AddAll (matriz como Int (1, 2, 3, 4, 5))

AddAllAt (ndice como Int, lista como lista)


Inserta todos los elementos de una matriz en la lista que comienza en la posicin dada.
List1.AddAll (12, List2)
List1.AddAllAt (12, conjunto como Int (1, 2, 3, 4, 5))

InsertAt (ndice como Int, elemento As Object)


Inserta el elemento especificado en el ndice especificado.
Como resultado se desplaza todos los elementos con mayor ndice y luego el ndice especificado.
List1.InsertAt (valor 12)

RemoveAt (ndice como Int)


Quita el elemento especificado en la posicin especificada de la lista.
List1.RemoveAt(12)

13 Lenguaje basic

194

Basic4Android Gua del principiante

Una lista puede contener cualquier tipo de objeto. Sin embargo, si una lista es declarada como un objeto global del proceso n
contener objetos de actividad (como vistas).
Basic4android convierte automticamente matrices regulares en las listas. Cuando se espera un parmetro de la lista
se puede pasar una matriz en su lugar.
Obtener el tamao de una lista:
List1.Size
Utilice el mtodo Get para obtener un elemento de la lista con:
Get (ndice como Int)
nmero = List1.Get(i)

Puede utilizar un bucle For para recorrer en iteracin todos los valores:
Para i = 0 To List1.Size - 1
Dim nmero como Int
nmero = List1.Get(i)
...
Siguiente

Las listas pueden ser guardadas y cargadas de archivos con:


File.WriteList (Dir como cadena, nombre de archivo como cadena, lista como lista)

File.WriteList (File.DirRootExternal, \"Test.txt\", List1)

File.ReadList (Dir como cadena, FileName As String)

List1 = File.ReadList (File.DirRootExternal, \"Test.txt\")

Puede cambiar un elemento sinngle con:


List1. SET (ndice como Int, elemento As Object)
List1.Set (valor 12)

Puede ordenarse una lista (deben encontrarse los elementos todos nmeros o cadenas) con:
Orden (ascendente As Boolean)
List1.Sort(true)
orden ascendente
List1.Sort(false)
Ordenar descendente
SortCaseInsensitive
(ascendente
As Boolean)

Borrar una lista con:


List1.Clear

13 Lenguaje basic

195

Basic4Android Gua del principiante

13.12 Mapas de
Un mapa es una coleccin que contiene pares de claves y valores, son descripciones detalladas de todas las funciones
en el captulo de mapa.
Las claves son nicas. Lo que significa que si agrega un par de clave\/valor (entrada) y la coleccin
ya tiene una entrada con la misma clave, la entrada anterior se eliminar del mapa.
La clave debe ser una cadena o un nmero. El valor puede ser cualquier tipo de objeto.
Similar a una lista, un mapa puede contener cualquier objeto, sin embargo, si es una variable global del proceso no
contener objetos de actividad (como vistas).
Los mapas son muy tiles para almacenar la configuracin de aplicaciones.
Mapas se utilizan en estos cdigos de ejemplo:
Mdulo DBUtils
utilizado para las entradas de la base de datos, las claves son los nombres de columna y los valores.
usado para la configuracin
Mdulo StateManager
Una lista debe inicializarse antes de que se puede utilizar.
Inicializa un mapa vaco.
Inicializar
Dim Map1 As mapa
Map1.Initialize

Agregar una nueva entrada:


Pongo (clave como objeto, valor como objeto)
Map1.put (\"lengua\", \"Ingls\")

Obtener una entrada:


Get (clave como objeto)

Idioma = Map1.Get(\"Language\")

Obtenga una clave o un valor en un ndice determinado:


Devuelve el valor del elemento en el ndice especificado.
GetKeyAt y GetValueAt deben utilizarse para recorrer en iteracin todos los elementos.
Estos mtodos estn optimizados para recorrer en iteracin los elementos en orden ascendente.
GetKeyAt (ndice como Int)
Clave = Map1.GetKeyAt(12)

Obtener un valor en un ndice determinado:


GetValueAt (ndice como Int)

Valor = Map1.GetValueAt(12)

Comprobar si un mapa contiene en entrada, comprueba si existe una entrada con la clave dada:
ContainsKey (clave como objeto)
Si Map1.ContainsKey(\"Language\") entonces
MsgBox (\"Ya hay una entrada con esta tecla!\", \"Atencin\")
Retorno
End If

13 Lenguaje basic

196

ArgumentException: The incoming token has e

Quitar una entrada:


Quitar (clave como objeto)

Map1.Remove(\"Language\")

Borrar una entrada, borra todos los elementos del mapa:


Claro
Map1.Clear

Mapas pueden ser guardados y cargados con:


File.WriteMap (Dir como cadena, nombre de archivo como cadena, mapa, mapa)

File.WriteMap (File.DirInternal, \"settings.txt\", mapSettings)

ReadMap (Dir As String FileName As String)


Lee el archivo y analiza cada lnea como un par de clave y valor (de cadenas).
Tenga en cuenta que el orden de los elementos en el mapa no puede ser el mismo que el orden en el archivo.
mapSettings = File.ReadMap (File.DirInternal, \"settings.txt\")

Archivo. ReadMap2 (Dir como cadena, nombre de archivo como cadena, mapa como mapa)
Similar a ReadMap. ReadMap2 agrega los elementos del mapa dado.
Mediante el uso de ReadMap2 con un mapa poblado puede forzar el orden de elementos segn sea necesario.
mapSettings = File.ReadMap2 (File.DirInternal, \"settings1.txt\", mapSettings)

14 Grficos \/ dibujo

197

Basic4Android Gua del principiante

14 Grficos \/ dibujo
14.1 Visin general
Para dibujar grficos tenemos que utilizar un objeto Canvas.
Explicaciones desde el archivo de ayuda.
Un lienzo es un objeto que se basa en otros puntos de vista o mapas de bits (mutable).
Cuando el lienzo es inicializado y dibujar en una vista, un nuevo mapa de bits mutable es creado para
Fondo de la vista, fondo de la vista actual se copia en el nuevo mapa de bits y se establece el lienzo
para dibujar en el nuevo mapa de bits.
Los dibujos de lienzo no se actualizan inmediatamente en la pantalla. Debe llamar a la vista de destino
Invalidar el mtodo para actualizar la vista.
Esto es til ya que permite hacer varios dibujos y slo entonces actualizar la pantalla.
El lienzo puede ser temporal limitada a una regin especfica (y as slo afectan a esta regin). Esto es
hecho llamando ClipPath. Retirar el recorte se hace llamando al RemoveClip.
Puede obtener el mapa de bits que el lienzo se basa en la propiedad de mapa de bits.
Esto es un 'objeto de actividad', no se puede declarar bajo Sub Process_Globals.
Es posible trazar en las siguientes vistas:
Actividad
ImageView
Panel
Mapa de bits (mutable)
En las siguientes funciones, usted encontrar una serie de parmetros comunes.
un mapa de bits Android
Bitmap1 como mapa de bits
son las coordenadas, variables de flotador.
x, y. x 1, y1, x 2, y2 como flotador
Color
como
Int
son variables de color. Variables int

SrcRect, DestRact, Rect1 como Rect son rectngulos, Rect objetos


Bandera si la superficie est lleno (True) o no (False)
Llena As Boolean
Las funciones de dibujo ms comunes son:
DrawBitmap (Bitmap1 como mapa de bits, SrcRect como Rect, DestRect como Rect)
Dibuja el mapa de bits determinada o slo una parte de ella...
SrcRect = rectngulo de origen, puede ser slo una parte del mapa de bits original.
DestRect = rectngulo de destino, puede ser de cualquier tamao.
Dibujar con el mismo tamao de ambos rectngulos tienen mismo ancho y la misma altura.
Si DestRect es diferente de la SrcRect el destino de dibujo es estirada o reducido
dependiendo de las proporciones de tamao entre los dos rectngulos.

Llamar BitmapRotated (Bitmap1 como mapa de bits, SrcRect como Rect, DestRect como Rect, grados
Como flotador)
Misma funcin como DrawBitmap, pero con una rotacin de los grados determinados ngulo alrededor de la
Centro de mapa de bits.

DrawCircle (x como flotador, y como Float, Radius como Float, Color como Int, llenado como Boolean,
StrokeWidth como Float)
Dibuja un crculo.
x una y son las coordenadas del centro del crculo y radio el radio de los crculos.

14 Grficos \/ dibujo

198

Basic4Android Gua del principiante

DrawColor (Int Color)


Llena la vista de toda el color dado.
El color puede ser Colors.Transparent haciendo la vista toda transparente.

DrawLine (x 1 como flotador, y1 como Float, x 2 como flotar, y2 como Float, Color como Int, StrokeWidth
Como flotador)
Dibuja una lnea recta.

DrawRect (Rect1 como Rect, Color como Int, llenado como Boolean, StrokeWidth como Float)
Dibuja un rectngulo con dado el tamao, color, ancho de lnea y lleno o no.

DrawRectRotated (Rect1 como Rect, Color como Int, llenado como Boolean, StrokeWidth como Float,
Grados como Float)
Mismo que DrawRect pero girada por el ngulo dado

DrawText (texto As String, x como flotador, y como Float, Typeface1 como tipo de letra, TestSize como
Float, Int Align1 como alinear de Color)

DrawTextRotated (texto As String, x como flotador, y como Float, Typeface1 como tipo de letra,
TestSize como Float, Color como Int Align1 como alinear, grados como Float)

14 Grficos \/ dibujo

199

Basic4Android Gua del principiante

14.2 Programas de prueba de dibujo


14.2.1 Dibujo de mapas de bits giratorio \/ RotatingNeedle
El proyecto se encuentra en: SourceCode\\Graphics\\RotatingNeedle\\RotatingNeedle.b4a
En el primer programa de prueba demostraremos la funcin DrawBitmapRotated.
El programa tiene dos modos:
Una aguja giratoria con una brjula esttica
Una brjula giratoria con una aguja esttica
Tenemos en el diseo:

3 botones

empieza a girar

movimiento de paso a paso

podemos dejar que gire bien la aguja


o la brjula.

2 archivos de mapa de bits


o Compass.png
o Needle.png

En la funcin de DrawBitmapRotated el mapa de bits gira alrededor del centro de mapas de bits.
Si tuviramos una imagen de la aguja como ste, tendramos que hacer algunos clculos para asegurarse de
gira alrededor del centro de la aguja.

Para evitar estos clculos, el mapa de bits de aguja se ve como esta. Hemos aadido la parte inferior tan
que es el centro de la aguja en el centro del mapa de bits.
Los pxeles azules son, en realidad, los pxeles transparentes.

14 Grficos \/ dibujo

200

Basic4Android Gua del principiante

Tengamos una mirada en el cdigo.

Aqu definimos tres variables globales con sus valores.


AngleStep paso en grados para las variaciones de ngulo de un paso a la siguiente.
ngulo actual de la aguja
ngulo
modo de programa
Modo
True = vueltas de aguja
Falso = vueltas brjula

Entonces definimos los diferentes objetos utilizados por el programa.


Los tres botones desde el archivo de diseo.
Dos vistas de lienzo, uno para la brjula y otro para la aguja.
Dos mapas de bits, uno para la brjula y otro para la aguja.
Dos ImageViews, uno para la brjula y otro para la aguja.
Tres rectngulos, uno para la brjula, dos para el origen de la aguja y el destino.
Un temporizador, se utiliza para mover dinmicamente la aguja o la brjula.
En la rutina Activity_Create:

Definir dos variables utilizadas para los clculos


Cargar el archivo de diseo a la actividad

Inicializar la brjula de mapa de bits


Inicializar el mapa de bits de aguja

14 Grficos \/ dibujo

201

Basic4Android Gua del principiante

Inicializar la brjula ImageView.


Coloque la brjula de mapa de bits en la brjula ImageView de mapa de bits.
Inicializar la aguja ImageView.
Ajustar la aguja ImageView color a transparente.

Calcular las coordenadas izquierda y superior de la brjula ImageView.


Aadir la brjula ImageView a la actividad.
Aadir la aguja ImageView a la actividad
con las mismas dimensiones que la brjula ImageView.
Inicializar la brjula lienzo y conctelo a la brjula ImageView.
Inicializar el rectngulo de la brjula.

Inicializar la aguja lienzo y conctela a la aguja ImageView.


Calcular las coordenadas izquierda y superior de la aguja ImageView.
Inicializar los rectngulos de origen y destino de la aguja.

Inicializar el temporizador, establecer el intervalo en ms de 200.


Llamar a la rutina Timer1_Tick para dibujar la aguja

14 Grficos \/ dibujo

202

Basic4Android Gua del principiante

En la rutina de Timer1_Tick tenemos:

Definir una variable local que representa el ngulo actual


Calcular el ngulo de nuevo utilizando el operador Mod
Si el modo = True, girando de modo de aguja nos:
o Dibuja un rectngulo transparente girado para borrar la aguja actual.
o Sacar la aguja con el nuevo ngulo.
o Invalidar la aguja ImageView actualizarlo.
Si el modo = False, girar la brjula de modo:
o Dibujar la brjula con el nuevo ngulo, en nuestro caso la fuente y el destino
rectngulo son iguales.
o Invalidar la brjula ImageView actualizarlo.

En la rutina btnStep_Click:

Llamar a la rutina Timer1_Tick para dibujar un nuevo paso.

14 Grficos \/ dibujo

203

Basic4Android Gua del principiante

En la rutina btnGoStop_Click:

Si Timer1 = True, el temporizador est funcionando.


o Establecemos el parmetro Timer1.Enabled en False para detenerlo.
o Establecer el texto del botn btnGoStop a \"Go\".
o Coloque el botn de btnStep visible.
Si Timer1 = False, el temporizador se detiene
o Establecemos el parmetro Timer1.Enabled en True para dejar que se ejecute.
o Establecer el texto del botn btnGoStop \"STOP\".
o Ocultar el botn de btnStep.

En la rutina btnMode_Click:

Cambiamos el modo variable de true a False o de False a True con la no


palabra clave.
Si el modo = True, girar la aguja, tenemos:
o Establecer el texto del botn a \"Aguja gira\".
o Dibuja un rectngulo transparente para borrar la aguja actual.
o Sacar la aguja en la nueva posicin.
o Dibujar la brjula por defecto.
Si el modo = False, girar la brjula, tenemos:
o Establecer el texto del botn de \"Brjula gira\".
o Borrar la aguja actual
o Sacar la aguja nueva.

14 Grficos \/ dibujo

204

Basic4Android Gua del principiante

14.2.2 Sencillo dibujar funciones


El proyecto se encuentra en: SourceCode\\Graphics\\SimpleDrawFunctions\\SimpleDrawFunctions.b4a
En el segundo programa de dibujo, SimpleDrawFunctions, usamos el otro plano comn
funciones.
El programa no tiene otra finalidad que mostrar lo que puede hacerse con dibujos.
El programa tiene tres paneles que utilizamos como capas y tres botones de ToggleButtons que nos permite
para mostrar u ocultar cada capa.
Layer(0) tiene un fondo gris y las otras dos capas tienen un fondo transparente.

Se puede jugar con los botones para observar las diferentes combinaciones de capas visibles y ocultas.

14 Grficos \/ dibujo

205

Basic4Android Gua del principiante

En esta captura vemos nicamente la imagen de fondo de


la actividad.
Usamos el ToggleButtons para ocultar o mostrar el
diferentes capas.

Aqu mostramos layer(0).


El panel tiene un fondo gris oscuro con:
un crculo azul.
un crculo transparente, fondo de la actividad es
dentro de este crculo.
un rectngulo semitransparente azul
un rectngulo transparente, fondo de la actividad
es dentro de este crculo.
Tocar la pantalla y mover el dedo se mueve la
crculos azules y transparentes en layer(0).

14 Grficos \/ dibujo

206

Basic4Android Gua del principiante

Aqu mostramos layer(1).


El panel tiene un fondo transparente con:
un crculo verde.
una pequea copia de la imagen de fondo de la actividad.
un rectngulo semitransparente verde, girado.
Vemos que el rectngulo cubre la actividad
de fondo porque la capa 1 est al frente de la capa de 0.

Aqu mostramos layer(2).


El panel tiene un fondo transparente con:
4 lneas en la parte superior.
3 textos horizontales con tres diferentes
alineaciones.
3 giradas textos con las tres alineaciones diferentes.
un punto para cada texto que muestra la posicin de la
punto de referencia.

Se puede jugar con los botones para mostrar las diferentes combinaciones de capas visibles y ocultas.

14 Grficos \/ dibujo

207

Basic4Android Gua del principiante

Tocar la pantalla con el dedo y moverlo,


mueve los crculos azules y transparentes.

En cada jugada, la imagen de backgound de la actividad


aparece.

14 Grficos \/ dibujo

208

Basic4Android Gua del principiante

Anlisis del cdigo:


No hay ningn archivo de diseo, todas las vistas se agregan por cdigo.
En la rutina de Sub Globals declaramos las variables y diferentes puntos de vista:

Tenemos:
3 Paneles
3 Lienzos
3 ToggleButtons
1 Rect, rectngulo para dibujar rectngulos
1 Mapa de bits, manteniendo la imagen de fondo de la actividad
1 BitmapDrawable, tiene antecedentes de la actividad
diferentes variables utilizadas para el dibujo.
Tenga en cuenta que usar matrices de puntos de vista de tres paneles, lienzos y togglebuttons.
Dim pnlLayer(3) como Panel En lugar deDim pnlLayer0, pnlLayer1, pnlLayer2 como grupo.
En la rutina de Sub Activity_Create nos inicializar las diferentes opiniones y agregarlos a la actividad:

Tenemos:
inicializar el slo si vistas declarcin = True.
cargar el Rose2.jpg archivo de imagen en mapa de bits.
inicializar la imagen de fondo de la actividad.
Establecer imagen de fondo de la actividad

inicializar algunas variables.

14 Grficos \/ dibujo

209

Basic4Android Gua del principiante

En un bucle:
inicializar los paneles capa.
definimos un EventName individual para cada uno de los tres paneles
utilizamos slo un evento en layout(0).
agregar los paneles a la actividad.
inicializar los lienzos de capa.
Establezca el parmetro de la etiqueta de paneles en el ndice.

inicializar la capa de ToggleButtons.


definimos un EventName nico para todos los tres ToggleButtons.
Gestionamos el mostrar y ocultar los paneles en la rutina de un solo evento.
calcular las coordenadas izquierda para cada ToggleButton.
definir los textos de los dos Estados.
Establezca el parmetro Checked a True.
Establezca el parmetro de la etiqueta en el ndice.

En la rutina de Sub Activity_Resume llamamos la rutina de dibujo.

14 Grficos \/ dibujo

210

Basic4Android Gua del principiante

En la rutina de Sub dibujo tenemos:

dibujar el gris oscuro de fondo de layout(0).


dibujar el fondo de layout(1) y layout(2) transparente.

Dibuje cuatro lneas en layer(2)

cvsLayer(2).DrawLine (x 1, y1, x 2, y2, Colors.Red, 0)

el ltimo parmetro de StrokeWidth es '0', esto significa modo de capilares, el ancho es de un pxel.
cvsLayer(2).DrawLine (x 1, y1, x 2, y2, Colors.Green, 0.99dip)

aqu usamos 0.99dip en lugar de 1dip porque en algunos casos ninguna lnea o slo partes de l son
dibujado. Este es un problema conocido en Android con un StrokeWidth de '1'.

Dibuje una lnea de crculo verde en layer(1).


Dibuje un crculo azul lleno de layer(0).
Dibuje un crculo transparente lleno en layer(0).

14 Grficos \/ dibujo

211

Basic4Android Gua del principiante

definir las coordenadas de un rectngulo.


dibujar un rectngulo rojo en layer(1).
definir las coordenadas de un rectngulo.
dibujar un rectngulo azul semitransparente en layer(0).
dibujar un rectngulo girado verde semitransparente en layer(1).
definir las coordenadas de un rectngulo.
dibujar un rectngulo transparente en layer(0).
definir las coordenadas de un rectngulo.
dibujar un rectngulo rojo en layer(1).

definir las coordenadas de un rectngulo.


dibujar la imagen de fondo de la actividad en un rectngulo ms pequeo en layer(1)

dibujar el texto \"La Rosa\" con las tres alineaciones posibles diferentes.
dibujar el punto de referencia para cada texto.

igual al anterior pero rotados textos.

14 Grficos \/ dibujo

212

Basic4Android Gua del principiante

Mirar ms estrecha sobre los textos mostrados vemos la referencia punto para cada texto.

Estas son las coordenadas x 1 y y1 utilizadas para mostrar los textos.

IZQUIERDA
alineacin.

Alineacin al centro.

Alineacin a la derecha.

En la rutina de btnLayer_Checked Sub tenemos:

Dim un botn local para obtener la vista que provoc el evento.


Set Send a la vista de remitente
cambiar el parmetro Visible de true a False o de False a True.

En la rutina de pnlLayer0_Checked Sub tenemos:

Dibuje un crculo gris oscuro para borrar el anterior crculo azul y transparente.
conjunto y yc a las nuevas coordenadas de los centros de crculo.
Dibuje un crculo azul y transparente en layer(1).
invalidar pnlLayout(1) para forzar la actualizacin del dibujo.

15 Palabras clave de B4A

213

15 Palabras clave de B4A


Lista de tipos:
Broca
Fecha y hora
Excepcin
Palabras clave
LayoutValues
Cadena
StringBuilder
Temporizador

15.1 Broca
Bit es un objeto predefinido que contiene mtodos relacionados bit a bit.
Ejemplo:
Dim banderas como Int
Flags = Bit.Or (100, 200)
Eventos:
Ninguno
Miembros:
Y (N1 como Int, N2 como Int) como Int
No (N como Int) como Int
O (N1 como Int, N2 como Int) como Int
ParseInt (valor como cadena, Radix como Int) como Int
ShiftLeft (N como Int, Shift As Int) como Int
ShiftRight (N como Int, Shift As Int) como Int
ToBinaryString (N como Int) As String
ToHexString (N como Int) As String
ToOctalString (N como Int) As String
UnsignedShiftRight (N como Int, Shift As Int) como Int
XOR (N1 como Int, N2 como Int) como Int
Descripcin de los miembros:
Y (N1 como Int, N2 como Int) como Int

Basic4Android Gua del principiante

15 Palabras clave de B4A

214

Basic4Android Gua del principiante

Devuelve la AND bit a bit de los dos valores.


No (N como Int) como Int
Devuelve el complemento bit a bit de un valor dado.
O (N1 como Int, N2 como Int) como Int
Devuelve el OR bit a bit de los dos valores.
ParseInt (valor como cadena, Radix como Int) como Int
Analiza el valor como un entero usando la base especificada.
Radix - debe estar entre 2 a 36.
ShiftLeft (N como Int, Shift As Int) como Int
N de turnos izquierda.
Shift - nmero de posiciones a desplazar.
ShiftRight (N como Int, Shift As Int) como Int
N de turnos derecha.
Mantiene el signo de valor original
Shift - nmero de posiciones a desplazar.
ToBinaryString (N como Int) As String
Devuelve una representacin de cadena de n en base 2.
ToHexString (N como Int) As String
Devuelve una representacin de cadena de n en base 16.
ToOctalString (N como Int) As String
Devuelve una representacin de cadena de n en base 8.
UnsignedShiftRight (N como Int, Shift As Int) como Int
N de turnos derecha.
Turnos ceros en las posiciones izquierdas.
Shift - nmero de posiciones a desplazar.
XOR (N1 como Int, N2 como Int) como Int
Devuelve el XOR bit a bit de los dos valores.

15.2 Fecha y hora


Fecha y hora relacionados con mtodos.
DateTime es un objeto predefinido. Debe no declararlo mismo.
Valores de fecha y hora se almacenan como garrapatas. Las garrapatas son el nmero de milisegundos desde el 1 de enero,
1970.
Este valor es demasiado grande para ser almacenado en una variable Int. Slo deben almacenarse en un largo
variable.
Los mtodos DateTime.Date y DateTime.Time convertir el valor de las garrapatas en una cadena.
Puede obtener la hora actual con DateTime.Now.

15 Palabras clave de B4A

215

Basic4Android Gua del principiante

Ejemplo:
Dim ahora largo
Ahora = DateTime.Now
MsgBox (\"la fecha es:\"
El tiempo es:
Eventos:
Ninguno
Miembros:
Agregar (garrapatas tanto tiempo, aos como meses como Int, Int, das como Int) As Long
Fecha (garrapatas As Long) As String
DateFormat como cadena
DateParse (fecha As String) As Long
GetDayOfMonth (garrapatas como larga) como Int
GetDayOfWeek (garrapatas como larga) como Int
GetDayOfYear (garrapatas como larga) como Int
GetHour (garrapatas como larga) como Int
GetMinute (garrapatas como larga) como Int
GetMonth (garrapatas como larga) como Int
GetSecond (garrapatas como larga) como Int
GetYear (garrapatas como larga) como Int
Ahora As Long [slo lectura]
TicksPerDay siempre
TicksPerHour siempre
TicksPerMinute siempre
TicksPerSecond siempre
Tiempo (garrapatas As Long) As String
TimeFormat As String
TimeParse (tiempo As String) As Long
Descripcin de los miembros:

15 Palabras clave de B4A

216

Basic4Android Gua del principiante

Agregar (garrapatas tanto tiempo, aos como meses como Int, Int, das como Int) As Long

Devuelve un valor de garrapatas que es el resultado de agregar los intervalos de tiempo especificado en el valor determinado
Pasar valores negativos si desea restar los valores.
Ejemplo:
Dim maana As Long
Maana = DateTime.Add (DateTime.Now, 0, 0, 1)
Registro (\"maana es la fecha:\"
Fecha (garrapatas As Long) As String
Devuelve una representacin de cadena de la fecha (que se almacena como garrapatas).
El formato de fecha puede ajustarse con la palabra clave DateFormat.
Ejemplo:
Registro (\"hoy es:\"
DateFormat como cadena
Obtiene o establece el formato utilizado para analizar cadenas de fecha.
Consulte esta pgina para los patrones compatibles: formatos.
El modelo predeterminado es MM\/dd\/aaaa (23\/04\/2002 por ejemplo).
DateParse (fecha As String) As Long
Analiza la cadena de fecha y devuelve sus garrapatas representacin.
Se producir una excepcin si se produce un error de anlisis.
Ejemplo:
Dim en algn momento como Long
En algn momento = DateTime.DateParse(\"02\/23\/2007\")
GetDayOfMonth (garrapatas como larga) como Int
Devuelve el da de componente de mes desde el valor de las garrapatas.
Los valores oscilan entre 1 a 31.
GetDayOfWeek (garrapatas como larga) como Int
Devuelve el da de componente de semana desde el valor de las garrapatas.
Los valores oscilan entre 1 a 7.
GetDayOfYear (garrapatas como larga) como Int
Devuelve el da de componente del ao el valor de las garrapatas.
Los valores oscilan entre 1 a 366.
GetHour (garrapatas como larga) como Int
Devuelve la hora del componente de da desde el valor de las garrapatas.
Los valores estn entre 0 a 23.
GetMinute (garrapatas como larga) como Int
Devuelve los minutos dentro de un componente de hora del valor de las garrapatas.
Los valores estn entre 0 a 59.
GetMonth (garrapatas como larga) como Int

15 Palabras clave de B4A

217

Basic4Android Gua del principiante

Devuelve el mes del componente del ao el valor de las garrapatas.


Los valores son entre 1 y 12.
GetSecond (garrapatas como larga) como Int
Devuelve a los segundos dentro de un componente minuto desde el valor de las garrapatas.
Los valores estn entre 0 a 59.
GetYear (garrapatas como larga) como Int
Devuelve el componente del ao el valor de las garrapatas.
Ahora As Long [slo lectura]
Obtiene la hora actual como garrapatas (nmero de milisegundos desde el 01 de enero de 1970).
TicksPerDay siempre
TicksPerHour siempre
TicksPerMinute siempre
TicksPerSecond siempre
Tiempo (garrapatas As Long) As String
Devuelve una representacin de cadena del tiempo (que se almacena como garrapatas).
El formato de tiempo puede ajustarse con la palabra clave TimeFormat.
Ejemplo:
Registro (\"la hora actual es:\"
TimeFormat As String
Obtiene o establece el formato utilizado para analizar las cadenas de tiempo.
Consulte esta pgina para los patrones compatibles: formatos.
El modelo predeterminado es HH (23: 45:12 por ejemplo).
TimeParse (tiempo As String) As Long
Analiza la cadena de fecha y devuelve sus garrapatas representacin.
Tenga en cuenta que la fecha de valor devuelto ser hoy.

15.3 Excepcin
Tiene una excepcin.
Puede acceder a la ltima excepcin llamando al LastException.
Por ejemplo:
Trate de
Dim en como InputStream
in = File.OpenInput (File.DirInternal, \"SomeMissingFile.txt\")
'...
Captura
Log(LastException.Message)
End Try
En caso.IsInitialized entonces en.Cerrar

15 Palabras clave de B4A

218

Basic4Android Gua del principiante

Eventos:
Ninguno
Miembros:
IsInitialized As Boolean
Mensaje As String [slo lectura]
Descripcin de los miembros:
IsInitialized As Boolean
Mensaje As String [slo lectura]

15.4 Palabras clave


Estas son las palabras clave internas.
Eventos:
Ninguno
Miembros:
ABS (nmero doble) como doble
ACos (Value As Double) como doble
ACosD (Value As Double) como doble
Matriz
ASC (Char como Char) como Int
ASin (Value As Double) como doble
ASinD (Value As Double) como doble
ATan (Value As Double) como doble
ATanD (Value As Double) como doble
BytesToString (Data() como Byte, StartOffset como Int, longitud como Int, CharSet As String) As String
Captura
cE como doble
CharsToString (Chars() como Char, StartOffset como Int, Int longitud) As String
Chr (UnicodeValue como Int) como Char

15 Palabras clave de B4A

219

Basic4Android Gua del principiante

Continuar
Cos (como doble en radianes) como doble
CosD (grados como doble) como doble
IPC como doble
CRLF como cadena
Densidad como flotador
Dim
DipToCurrent (longitud como Int) como Int
DoEvents
Salida
ExitApplication
False As Boolean
Archivo como archivo
Piso (nmero doble) como doble
Para
GetDeviceLayoutValues como LayoutValues
GetType (objeto As Object) As String
Si
InputList (elementos como lista, ttulo como cadena, CheckedItem como Int) como Int
InputMultiList (elementos como lista, ttulo como cadena) como lista
Es
IsBackgroundTaskRunning (ContainerObject como objeto, TaskId como Int) As Boolean
ESNUMERO (texto As String) As Boolean
LastException como excepcin
LoadBitmap (Dir como cadena, FileName As String) como mapa de bits
LoadBitmapSample (Dir como cadena, nombre de archivo como cadena, MaxWidth como Int, MaxHeight como

15 Palabras clave de B4A

220

Basic4Android Gua del principiante

Int) como mapa de bits


Registro (mensaje As String)
Logaritmo (nmero doble, Base doble) como doble
Max (nmero1 como doble, nmero2 como doble) como doble
Min (nmero1 como doble, nmero2 como doble) como doble
MsgBox (mensaje As String, titulo As String)
Msgbox2 (mensaje As String, ttulo como cadena, positivo como cadena, Cancel As String, negativo
Como cadena, icono como android.graphics.Bitmap) como Int
No (valor As Boolean) como Boolean
NULL como objeto
NumberFormat (nmero doble, MinimumIntegers como Int, MaximumFractions como Int) como
Cadena
NumberFormat2 (nmero doble, MinimumIntegers como Int, MaximumFractions como Int,
MinimumFractions como Int, GroupingUsed As Boolean) As String
PerXToCurrent (porcentaje como Float) como Int
PerYToCurrent (porcentaje como Float) como Int
Potencia (Base doble, exponente como doble) como doble
ProgressDialogHide
ProgressDialogShow (texto As String)
ProgressDialogShow2 (texto As String, Cancelable As Boolean)
CITAR como cadena
Regex como Regex
Retorno
RND (Min como Int, Max como Int) como Int
Redondear (nmero doble) As Long
Round2 (nmero como doble, DecimalPlaces como Int) como doble
Seleccione
Remitente como objeto

15 Palabras clave de B4A

221

Basic4Android Gua del principiante

Pecado (como doble en radianes) como doble


SinD (grados como doble) como doble
Sqrt (Value As Double) como doble
StartActivity (actividad como objeto)
Sub
FICHA como cadena
Tan (radianes como doble) como doble
TanD (grados como doble) como doble
ToastMessageShow (mensaje As String, LongDuration As Boolean)
True As Boolean
Trate de
Tipo
Hasta
Tiempo
Descripcin de los miembros:
ABS (nmero doble) como doble
Devuelve el valor absoluto.
ACos (Value As Double) como doble
Devuelve el ngulo medido en radianes.
ACosD (Value As Double) como doble
Devuelve el ngulo medido en grados.
Matriz
Crea una matriz de dimensin nica del tipo especificado.
La sintaxis es: matriz como tipo (lista de valores).
Ejemplo:
Dim Days() As String
Das = Array como cadena (\"Domingo\", \"Lunes\",...)
ASC (Char como Char) como Int
Devuelve el punto de cdigo unicode del primer carcter o caracteres dado en cadena.

15 Palabras clave de B4A

222

Basic4Android Gua del principiante

ASin (Value As Double) como doble


Devuelve el ngulo medido en radianes.
ASinD (Value As Double) como doble
Devuelve el ngulo medido en grados.
ATan (Value As Double) como doble
Devuelve el ngulo medido en radianes.
ATanD (Value As Double) como doble
Devuelve el ngulo medido en grados.
BytesToString (Data() como Byte, StartOffset como Int, longitud como Int, CharSet como cadena) como
Cadena
Decodifica las matrices de bytes dado como una cadena.
Datos - la matriz de bytes.
StartOffset - el primer byte para leer.
Longitud: nmero de bytes que leer.
CharSet - el nombre del juego de caracteres.
Ejemplo:
Dim s As String
s = BytesToString (Buffer, 0, Buffer.Length, \"UTF-8\")
Captura
Cualquier excepcin que se inicia dentro de un bloque try quedarn retenida en el bloque catch.
Llame a LastException para obtener la excepcin detectada.
Sintaxis:
Trate de
...
Captura
...
End Try
cE como doble
constante e (base de logaritmo natural).
CharsToString (Chars() como Char, StartOffset como Int, Int longitud) As String
Crea una nueva cadena copiando los caracteres de la matriz.
Copiar comienza desde StartOffset y el nmero de caracteres que copian equivale a la longitud.
Chr (UnicodeValue como Int) como Char
Devuelve el carcter que est representado por el valor unicode determinada.
Continuar
Detiene la ejecucin de la iteracin actual y contina con el siguiente.
Cos (como doble en radianes) como doble

15 Palabras clave de B4A

223

Basic4Android Gua del principiante

Calcula la funcin trigonomtrica coseno. ngulo medido en radianes.


CosD (grados como doble) como doble
Calcula la funcin trigonomtrica coseno. ngulo medido en grados.
IPC como doble
Constante PI.
CRLF como cadena
Carcter de nueva lnea. El valor de chr (13).
Densidad como flotador
Devuelve la escala del dispositivo, que es DPI \/ 160.
(PPP significa puntos por pulgada).
Dim
Declara una variable.
Sintaxis:
Declare una variable sola:
Nombre de variable Dim [As tipo]
El tipo predeterminado es la cadena.
Declarar varias variables. Todas las variables sern del tipo especificado.
Dim variable1, variable2,..., [As tipo]
Tenga en cuenta que la sintaxis abreviada slo se aplica a la palabra clave Dim.
Declarar una matriz:
Dim variable (Rank1, Rank2,...) [As tipo]
Ejemplo: Dim Days(7) As String
El rango real puede omitirse para cero matrices de longitud.
DipToCurrent (longitud como Int) como Int
Escala el valor, que representa una longitud especfica de un dispositivo predeterminado de densidad (densidad = 1.0),
al dispositivo actual.
Por ejemplo, el siguiente cdigo establece el valor de ancho de este botn para tener el mismo tamao fsico
en todos los dispositivos.
Button1.Width = DipToCurrent(100)
Tenga en cuenta que existe una sintaxis abreviada para este mtodo. Cualquier nmero seguido de la cadena 'dip'
se convertir en la misma manera (sin espacios entre el nmero y 'dip').
Por lo que el cdigo anterior es equivalente a:
Button1.Width = 100dip ' dip-> pxeles independientes de densidad
DoEvents
Procesos de mensajes en la cola de mensajes en espera.
Puede llamarse DoEvents dentro de bucles largos para permitir que el programa de eventos de espera del proceso.
Salida
Se cierra el bucle ms interior.

15 Palabras clave de B4A

224

Basic4Android Gua del principiante

ExitApplication

Inmediatamente termina la aplicacin y detiene el proceso.


Mayora de las aplicaciones no debe usar este mtodo y prefieren Activity.Finish que permite que el sistema operativo decidir
Cuando el proceso es asesinado.
False As Boolean
Archivo como archivo
Archivos de mtodos relacionados.
Piso (nmero doble) como doble
Devuelve el doble ms grande que es menor o igual al nmero especificado y es igual a un entero.
Para
Sintaxis:
For variable = valor1 a valor2 [intervalo de paso]
...
Siguiente
Ejemplo:
Para i = 1 A 10
Log(i) ' imprimir 1 a 10 (inclusive).
Siguiente
Si la variable de iteracin no se declar antes de que sea de tipo int.
GetDeviceLayoutValues como LayoutValues
Devuelve el dispositivo LayoutValues.
Ejemplo:
Log(GetDeviceLayoutValues)
GetType (objeto As Object) As String
Devuelve una cadena que representa el tipo del objeto java.
Si
Sola lnea:
Si condicin entonces true-declaracin [false-instruccin Else]
Multiline:
Si condicin entonces
Declaracin
Else If condicin entonces
Declaracin
...
Else
Declaracin
End If
InputList (elementos como lista, ttulo como cadena, CheckedItem como Int) como Int
Muestra un cuadro de dilogo modal con una lista de elementos y botones de radio. Pulsando sobre un elemento se cerrar el
cuadro de dilogo.

15 Palabras clave de B4A

225

Basic4Android Gua del principiante

Devuelve el ndice del elemento seleccionado o DialogResponse.Cancel si el usuario presiona en la parte posterior
clave.
Lista - elementos para mostrar.
Title - Ttulo del dilogo.
CheckedItem - el ndice del elemento que ser seleccionado en primer lugar. Pasar -1 Si no hay ningn elemento debe ser
preseleccionados.
InputMultiList (elementos como lista, ttulo como cadena) como lista

Muestra un cuadro de dilogo modal con una lista de elementos y casillas de verificacin. El usuario puede seleccionar vario
El cuadro de dilogo se cierra pulsando sobre el botn \"Aceptar\".
Devuelve una lista con los ndices de los elementos seleccionados. La lista est ordenada.
Devuelve una lista vaca si el usuario ha presionado la tecla back.
Es
Pruebas si el objeto si del tipo dado.
Ejemplo:
Para i = 0 To Activity.NumberOfViews - 1
Si Activity.GetView(i) es botn entonces
Dim b como botn
b = Activity.GetView(i)
b.color = Colors.Blue
End If
Siguiente
IsBackgroundTaskRunning (ContainerObject como objeto, TaskId como Int) As Boolean
Pruebas si una tarea en segundo plano, presentada por el objeto contenedor y con el id especificado, es
ejecutando.
ESNUMERO (texto As String) As Boolean
Comprueba si la cadena especificada puede analizarse de forma segura como un nmero.
LastException como excepcin
Devuelve la ltima excepcin que fue pillada (si existe tal).
LoadBitmap (Dir como cadena, FileName As String) como mapa de bits
Carga el mapa de bits.
Tenga en cuenta que el sistema de archivos Android distingue maysculas de minsculas.
Debe considerar el uso de LoadBitmapSample si el tamao de la imagen es grande.
El tamao real del archivo no es relevante como normalmente se almacenan imgenes comprimidas.
Ejemplo:
Activity.SetBackgroundImage (LoadBitmap (File.DirAssets,
\"SomeFile.jpg\"))
LoadBitmapSample (Dir como cadena, nombre de archivo como cadena, MaxWidth como Int, MaxHeight como
Int) como mapa de bits
Carga el mapa de bits.
El decodificador subsample el mapa de bits si MaxWidth o MaxHeight es ms pequeo que el mapa de bits
dimensiones.
Esto puede ahorrar un montn de memoria al cargar imgenes grandes.
Ejemplo:

15 Palabras clave de B4A

226

Basic4Android Gua del principiante

Activity.SetBackgroundImage (LoadBitmapSample (File.DirAssets,


\"SomeFile.jpg\", Activity.Width, Activity.Height))
Registro (mensaje As String)
Registra un mensaje. El registro puede verse en la ficha LogCat.
Logaritmo (nmero doble, Base doble) como doble
Max (nmero1 como doble, nmero2 como doble) como doble
Devuelve el nmero ms grande entre los dos nmeros.
Min (nmero1 como doble, nmero2 como doble) como doble
Devuelve el nmero menor entre los dos nmeros.
MsgBox (mensaje As String, titulo As String)
Muestra un cuadro de mensaje modal con el mensaje especificado y el ttulo.
El cuadro de dilogo mostrar un botn OK.
Ejemplo:
MsgBox (\"Hola mundo\", \"Este es el ttulo\")
Msgbox2 (mensaje As String, ttulo como cadena, positivo como cadena, Cancel As String,
Negativo como cadena, icono como android.graphics.Bitmap) como Int
Muestra un cuadro de mensaje modal con el mensaje especificado y el ttulo.
Mensaje - el mensaje del cuadro de dilogo.
Ttulo - el ttulo del cuadro de dilogo.
Positivo - el texto a mostrar para el botn de \"positivo\". Pasar \"\" si no desea mostrar el botn.
Cancelar - el texto a mostrar para el botn \"Cancelar\". Pasar \"\" si no desea mostrar el botn.
Negativo - el texto a mostrar para el botn de \"negativo\". Pasar \"\" si no desea mostrar el botn.
Icono - un mapa de bits que se dibujarn cerca el ttulo. Pasar Null si no desea mostrar un icono.
Devuelve uno de los valores de DialogResponse.
Ejemplo:
Dim resultado como Int
resultado = Msgbox2 (\"Este es el mensaje\", \"Este es el ttulo\",
\"Bueno\", \"\", \"Bad\", LoadBitmap (File.DirAssets, \"smiley.gif\"))
Si resultado = DialogResponse.Positive Then...
No (valor As Boolean) como Boolean
Invierte el valor de determinado valor booleano.
NULL como objeto
NumberFormat (nmero doble, MinimumIntegers como Int, MaximumFractions como Int)
Como cadena
Convierte al nmero especificado en una cadena.
La cadena incluir al menos mnimo enteros y en la mayora de los dgitos mximo fracciones.
Ejemplo:
Registro (NumberFormat (12345.6789, 0, 2)) ' \"12,345.68\"
Registro (NumberFormat (1, 3, 0)) ' \"001\"

15 Palabras clave de B4A

227

Basic4Android Gua del principiante

NumberFormat2 (nmero como doble, MinimumIntegers como Int, MaximumFractions como


Int, MinimumFractions como Int, GroupingUsed As Boolean) As String
Convierte al nmero especificado en una cadena.
La cadena incluir al menos mnimo enteros, a ms dgitos de fracciones de mximo y mnimo
Dgitos de fracciones mnimas.
GroupingUsed - determina si al grupo cada tres enteros.
Ejemplo:
Registro (NumberFormat2 (12345.67, 0, 3, 3, false)) ' \"12345.670\"
PerXToCurrent (porcentaje como Float) como Int
Devuelve el tamao real del determinado porcentaje de la anchura de la actividad.
Ejemplo:
Button1.Width = PerXToCurrent(50) ' Button1.Width = 50% * Activity.Width
Una sintaxis abreviada para este mtodo est disponible. Cualquier nmero seguido de la cadena '% x'
se convertir en la misma manera (sin espacios entre el nmero y '% x').
Por lo que el cdigo anterior es equivalente a:
Button1.Width = 50% x
PerYToCurrent (porcentaje como Float) como Int
Devuelve el tamao real del determinado porcentaje de la altura de la actividad.
Ejemplo:
Button1.Height = PerYToCurrent(50) ' Button1.Height = 50% * Activity.Height
Una sintaxis abreviada para este mtodo est disponible. Cualquier nmero seguido de la cadena '% y'
se convertir en la misma manera (sin espacios entre el nmero y '% y').
Por lo que el cdigo anterior es equivalente a:
Button1.Height = 50% y
Potencia (Base doble, exponente como doble) como doble
Devuelve el valor Base elevado a la potencia de exponente.
ProgressDialogHide
Esconde un cuadro de dilogo de progreso visible. No hacer nada si no hay dilogo de progreso es visible.
ProgressDialogShow (texto As String)
Muestra un cuadro de dilogo con una barra giratoria circular y el texto especificado.
A diferencia de los mtodos de Msgbox y InputList, el cdigo no se bloquear.
Debe llamar a ProgressDialogHide para quitar el cuadro de dilogo.
El cuadro de dilogo tambin se eliminarn si el usuario presiona la tecla atrs.
ProgressDialogShow2 (texto As String, Cancelable As Boolean)
Muestra un cuadro de dilogo con una barra giratoria circular y el texto especificado.
A diferencia de los mtodos de Msgbox y InputList, el cdigo no se bloquear.
Debe llamar a ProgressDialogHide para quitar el cuadro de dilogo.
Cancelable - si el usuario puede descartar el cuadro de dilogo presionando la tecla atrs.
CITAR como cadena
Citar el personaje. El valor de chr (34).

15 Palabras clave de B4A

228

Basic4Android Gua del principiante

Regex como Regex


Mtodos relacionados de expresiones regulares.
Retorno
Devuelve desde el actual sub y opcionalmente devuelve el valor dado.
Sintaxis: Retorno [valor]
RND (Min como Int, Max como Int) como Int
Devuelve un entero aleatorio entre Min (inclusive) y Max (exclusivo).
Redondear (nmero doble) As Long
Devuelve el nmero largo ms cercano al nmero dado.
Round2 (nmero como doble, DecimalPlaces como Int) como doble
Redondea el nmero determinado y deja hasta el nmero especificado de dgitos fraccionarios.
Seleccione
Compara un valor nico para varios valores.
Seleccionados bloques no se pueden anidar.
Ejemplo:
Dim valor como Int
valor = 7
Seleccionar valor
Caso 1:
Log(\"One\")
Caso 2, 4, 6, 8:
Log(\"Even\")
Caso 3, 5, 7, 9:
Registro (\"impar ms grande que uno\")
Otro caso
Registro (\"mayor que 9\")
End Select
Remitente como objeto
Devuelve el objeto que provoc el evento.
Slo es vlido mientras dentro del sub evento.
Ejemplo:
Sub Button_Click
Dim b como botn
b = Sender
b.Text = \"he hecho clic en\"
End Sub
Pecado (como doble en radianes) como doble
Calcula la funcin trigonomtrica seno. ngulo medido en radianes.
SinD (grados como doble) como doble
Calcula la funcin trigonomtrica seno. ngulo medido en grados.

15 Palabras clave de B4A

229

Basic4Android Gua del principiante

Sqrt (Value As Double) como doble


Devuelve la raz cuadrada positiva.
StartActivity (actividad como objeto)
Inicia una actividad o trae al frente si ya existe.
La actividad puede ser una cadena con el nombre de la actividad de destino o puede ser la propia actividad.
Despus de esta llamada se interrumpir la actividad actual y se reanudar la actividad de destino.
Este mtodo tambin puede utilizarse para enviar objetos de calidades al sistema.
Ejemplo: StartActivity (Activity2)
Sub
Declara un sub con los parmetros y el tipo de valor devuelto.
Sintaxis: Nombre de Sub [(lista de parmetros)] [como tipo de retorno]
Los parmetros incluyen el nombre y tipo.
Las longitudes de matrices de dimensiones no deben incluirse.
Ejemplo:
Sub MySub (FirstName como cadena, LastName como cadena, edad como Int,
OtherValues() como doble) como Boolean
...
End Sub
En este ejemplo, OtherValues es la matriz de una sola dimensin.
La declaracin de tipo de valor devuelto es diferente a otras declaraciones como el parntesis de matriz siguen las
tipo y no
el nombre (que en este caso no existe).
FICHA como cadena
Carcter de tabulacin.
Tan (radianes como doble) como doble
Calcula la tangente trigonomtrica. ngulo medido en radianes.
TanD (grados como doble) como doble
Calcula la tangente trigonomtrica. ngulo medido en grados.
ToastMessageShow (mensaje As String, LongDuration As Boolean)

Muestra un mensaje poco rpido que se apaga automticamente.


Mensaje - el mensaje de texto a mostrar.
LongDuration - si true, a continuacin, muestra el mensaje durante un largo perodo, de lo contrario muestra el mensaje para u
perodo corto.
True As Boolean
Trate de
Cualquier excepcin que se inicia dentro de un bloque try quedarn retenida en el bloque catch.
Llame a LastException para obtener la excepcin detectada.
Sintaxis:
Trate de
...
Captura

15 Palabras clave de B4A

230

Basic4Android Gua del principiante

...
End Try
Tipo
Declara una estructura.
Slo puede utilizarse dentro de sub Globals o sub Process_Globals.
Sintaxis:
Escriba el nombre de tipo (campo1, Campo2,...)
Campos incluyen nombre y tipo.
Ejemplo:
Tipo MyType (Name As String, Items(10) como Int)
Dim a, b como MyType
a.Initialize
a.Items(2) = 123
Hasta
Bucles hasta que la condicin es verdadera.
Sintaxis:
Do Until condicin
...
LOOP
Tiempo
Bucles mientras la condicin es verdadera.
Sintaxis:
Mientras que la condicin
...
LOOP

15.5 LayoutValues
Contiene valores relacionados con la pantalla.
Puede obtener los valores de la la pantalla actual llamando al GetDeviceLayoutValues.
Por ejemplo:
Dim lv como LayoutValues
LV = GetDeviceLayoutValues
Log(LV) ' imprimir los valores en el registro
Activity.LoadLayout y Panel.LoadLayout devolver un objeto LayoutValues con el
los valores de la
variante de diseo elegido.
Eventos:
Ninguno
Miembros:
Altura como Int
Escala como flotador
toString As String

15 Palabras clave de B4A

231

Basic4Android Gua del principiante

Ancho como Int


Descripcin de los miembros:
Altura como Int
La altura de la pantalla (pxeles).
Escala como flotador

El valor de escala del dispositivo que es igual a 'puntos por pulgada' \/ 160. Para la mayora de los dispositivos, el valor ser 1
o 1.5 (alta resolucin).
toString As String
Ancho como Int
El ancho de la pantalla (pxeles).

15.6 Cadena
Las cadenas son inmutables en Basic4android, lo que significa que puede cambiar el valor de una cadena
variables pero usted no puede cambiar el texto almacenado en un objeto string.
Por lo que mtodos como la subcadena, Trim y ToLowerCase devolucin una cadena nueva, no cambian la
valor de la cadena actual.
Uso tpico:
Dim s As String
s = \"texto\"
s = s.Replace (\"a\", \"b\")
Si usted necesita una cadena mutable, puede usar StringBuilder.
Tenga en cuenta que los literales de cadena son tambin objetos string:
Registro (\"texto\".Trim)
Eventos:
Ninguno
Miembros:
CharAt (ndice como Int) como Char
CompareTo (otro como cadena) como Int
EndsWith (sufijo As String) As Boolean
EqualsIgnoreCase (otros As String) As Boolean
GetBytes (Charset como cadena) como Byte()
IndexOf (SearchFor As String) como Int
IndexOf2 (SearchFor As String, ndice como Int) como Int
Longitud como Int

15 Palabras clave de B4A

232

Basic4Android Gua del principiante

Reemplazar (destino como cadena, reemplazo As String) As String


StartsWith (prefijo As String) As Boolean
SubString (BeginIndex como Int) As String
SubString2 (BeginIndex como Int, EndIndex como Int) As String
ToLowerCase como cadena
ToUpperCase como cadena
Recorte como cadena
Descripcin de los miembros:
CharAt (ndice como Int) como Char
Devuelve el carcter en el ndice especificado.
CompareTo (otro como cadena) como Int
Lexicogrficamente compara las dos cadenas.
Devuelve un valor menor que 0, si la cadena actual precede a otro.
Devuelve 0 si dos cadenas son iguales.
Devuelve un valor mayor que 0 si la cadena actual viene despus de otra.
Nota que maysculas preceden a minsculas.
Ejemplos:
\"abc\".CompareTo(\"da\") ' < 0
\"abc\".CompareTo(\"Abc\") ' > 0
\"abc\".CompareTo(\"abca\")' < 0
EndsWith (sufijo As String) As Boolean
Devuelve true si esta cadena termina con el sufijo determinado.
EqualsIgnoreCase (otros As String) As Boolean
Devuelve true si dos cadenas son iguales ignorando su caso.
GetBytes (Charset como cadena) como Byte()
Codifica la cadena en una nueva matriz de bytes.
Ejemplo:
Dim Data() As Byte
Datos = \"Una cadena\".GetBytes(\"UTF8\")
IndexOf (SearchFor As String) como Int
Devuelve el ndice de la primera aparicin de cadena SearchFor en la cadena.
Devuelve -1 Si no se ha encontrado SearchFor.
IndexOf2 (SearchFor As String, ndice como Int) como Int

15 Palabras clave de B4A

233

Basic4Android Gua del principiante

Devuelve el ndice de la primera aparicin de cadena SearchFor en la cadena.


Inicia la bsqueda en el ndice especificado.
Devuelve -1 Si no se ha encontrado SearchFor.
Longitud como Int
Devuelve la longitud de esta cadena.
Reemplazar (destino como cadena, reemplazo As String) As String
Devuelve una nueva cadena resultante de la sustitucin de todas las apariciones de destino con
Reemplazo.
StartsWith (prefijo As String) As Boolean
Devuelve true si esta cadena comienza con el prefijo especificado.
SubString (BeginIndex como Int) As String
Devuelve una nueva cadena que es una subcadena de la cadena original.
La nueva cadena incluir el carcter BeginIndex y se extender hasta el final de la cadena.
Ejemplo:
\"012345\".SubString(2) ' devuelve \"2345\"
SubString2 (BeginIndex como Int, EndIndex como Int) As String
Devuelve una nueva cadena que es una subcadena de la cadena original.
La nueva cadena incluir el carcter BeginIndex y se extender hasta el carcter
EndIndex, no incluyendo el ltimo carcter.
Ejemplo:
\"012345\".SubString2(2, 4) ' devuelve \"23\"
ToLowerCase como cadena
Devuelve una nueva cadena que es el resultado de la menor esta cadena de la carcasa.
ToUpperCase como cadena
Devuelve una nueva cadena que es el resultado del alto cuerpo de esta cadena.
Recorte como cadena
Devuelve una copia de la secuencia original sin ningn espacio en blanco inicial o final.

15.7 StringBuilder
StringBuilder es una cadena mutable, a diferencia de las cadenas regulares que son inmutables.
StringBuilder es especialmente til cuando necesita concatenar cadenas de muchos.
El cdigo siguiente muestra el aumento de rendimiento de StringBuilder:
As Long Dim Inicio
Inicio = DateTime.Now
' Cadena regular
Dim s As String
Para i = 1 A 5000
s = s

15 Palabras clave de B4A

234

Basic4Android Gua del principiante

Siguiente
Registro (DateTime.Now - start)
' StringBuilder
Inicio = DateTime.Now
Dim sb como StringBuilder
SB.Inicializar
Para i = 1 A 5000
SB.Append(i)
Siguiente
Registro (DateTime.Now - start)
Probado en un dispositivo real, la primera 'bucle' for tard unos 20 segundos y el segundo tom menos de la dcima
de un segundo.
La razn es que el cdigo: s = s
crea una nueva cadena en cada iteracin (cadenas son
inmutable).
El mtodo StringBuilder.ToString convierte el objeto en una cadena.
Eventos:
Ninguno
Miembros:
Append (texto As String) como StringBuilder
Inicializar
Insertar (Offset como Int, texto As String) como StringBuilder
IsInitialized As Boolean
Longitud como Int [slo lectura]
Quitar (StartOffset como Int, EndOffset como Int) como StringBuilder
ToString como cadena
Descripcin de los miembros:
Append (texto As String) como StringBuilder
Anexa el texto especificado al final.
Devuelve el mismo objeto, de modo que puede encadenar mtodos.
Ejemplo:
SB.Append (\"primera lnea\").Append(CRLF).Append (\"segunda lnea\")
Inicializar
Inicializa el objeto.
Ejemplo:
Dim sb como StringBuilder
SB.Inicializar
SB.Append (\"el valor es:\").Append(SomeOtherVariable).Append(CRLF)
Insertar (Offset como Int, texto As String) como StringBuilder

15 Palabras clave de B4A

235

Basic4Android Gua del principiante

Inserta el texto especificado en el desplazamiento especificado.


IsInitialized As Boolean
Longitud como Int [slo lectura]
Devuelve el nmero de caracteres.
Quitar (StartOffset como Int, EndOffset como Int) como StringBuilder
Elimina los caracteres especificados.
StartOffset - el primer carcter para quitar.
EndOffset - el ndice final. Este personaje no se eliminarn.
ToString como cadena
Convierte el objeto en una cadena.

15.8 Temporizador

Un objeto Timer genera eventos de garrapatas en los intervalos especificados.


Utilizando un temporizador es una buena alternativa a un bucle largo, ya que permite que el subproceso de la interfaz de us
y mensajes.
Tenga en cuenta que los eventos del temporizador no disparar mientras el subproceso de la interfaz de usuario est ocupa
Llame a palabra clave DoEvents).
El temporizador de la propiedad Enabled se establece en False de forma predeterminada. Para hacerlo debe cambiarlo empie
en True.
Eventos del temporizador no se activar cuando se detiene la actividad, o si es un dilogo de bloqueo (como Msgbox)
visible.
Temporizadores deben declararse en Sub Process_Globals. De lo contrario puede obtener varios temporizadores
ejecutando cuando se recrea la actividad.
Tambin es importante desactivar el temporizador cuando la actividad es una pausa y luego activarlo cuando se
se reanuda. Esto ahorra CPU y batera.
Eventos:
Garrapata
Miembros:
Habilitado como Boolean
Inicializar (EventName como cadena, intervalo de tiempo)
Intervalo de tiempo
Descripcin de los miembros:
Habilitado como Boolean
Obtiene o establece si el temporizador est activado (chispero).
Inicializar (EventName como cadena, intervalo de tiempo)
Inicializa el temporizador con el prefijo sub de evento y el intervalo especificado (medido en milisegundos).
IMPORTANTE: este objeto debe declararse en Sub Process_Globals.

15 Palabras clave de B4A

236

Basic4Android Gua del principiante

Ejemplo:
Timer1.Initialize (\"Timer1\", 1000)
Timer1.Enabled = True
Sub Timer1_Tick
' Controlar eventos de graduacin
End Sub
Intervalo de tiempo
Obtiene o establece el intervalo entre tick eventos, medidos en milisegundos.

16 Views

237

Basic4Android Gua del principiante

16 Views
Lista de tipos:
Actividad
Botn
Casilla de verificacin
EditText
ImageView
Etiqueta
ListView
Panel
ProgressBar
RadioButton
ScrollView
SeekBar
Spinner
TabHost
ToggleButton
Vista
Vista Web

16.1 Actividad
Cada mdulo de actividad incluyen un objeto predefinido de actividad.
La actividad es el componente principal de la aplicacin.
Las actividades han relacionado tres ciclo de vida especial evento: Activity_Create, Activity_Resume y
Activity_Pause.
Ver este tutorial para obtener ms informacin acerca de las actividades y procesos de ciclo de vida: tutorial de ciclo de vida.
Puede agregar y quitar vistas a esta actividad con los mtodos AddView y RemoveViewAt.
Tambin puede cargar un archivo de diseo con LoadLayout.
El evento Touch puede utilizarse para manejar toques de usuario.
El primer parmetro de este evento es el parmetro de accin. Los valores de parmetro pueden ser
ACTION_DOWN,
ACTION_MOVE o ACTION_UP. Utilice este valor para encontrar la accin del usuario actual.
El evento KeyPress se produce cuando el usuario ha presionado la tecla y suponiendo que no hay otra vista
ha consumido este evento (como EditText).
Al manipular el evento KeyPress debe devolver un valor booleano que indica si la tecla
evento de prensa fue consumida.
Por ejemplo si el usuario presiona la tecla atrs y le devuelve verdadero, entonces el SO no cerrar su
actividad.
Sub Activity_KeyPress (KeyCode como Int) As Boolean
Si Keycode = KeyCodes.KEYCODE_BACK Then
Return True
Else
Return False
End If
End Sub
Puede agregar elementos de men a la actividad con el mtodo AddMenuItem. Nota que este mtodo debe

16 Views

238

Basic4Android Gua del principiante

slo se puede llamar dentro de


Evento de Activity_Create.
Eventos:
Toque (accin como Int, X como flotador, Y como Float)
KeyPress (KeyCode como Int) As Boolean ' devolver true si desea consumir el evento
Haga clic en
LongClick
Miembros:
ACTION_DOWN como Int
ACTION_MOVE como Int
ACTION_UP como Int
AddMenuItem (ttulo como cadena, EventName As String)
AddMenuItem2 (Title As String, EventName As String, mapa de bits como android.graphics.Bitmap)
AddView (vista como android.view.View, izquierda como Int, Top como Int, ancho como Int, altura como Int)
Antecedentes como android.graphics.drawable.Drawable
BringToFront
Color como Int [slo escritura]
Acabado
GetView (ndice como Int) como vista
Altura como Int
Inicializar (EventName As String)
Invalidar
Invalidate2 (Rect como android.graphics.Rect)
Invalidate3 (izquierda como Int, Top como Int, Int, como inferior como Int)
IsInitialized As Boolean
Izquierda como Int
LoadLayout (diseo como cadena) como LayoutValues
NumberOfViews como Int [slo lectura]
RemoveView

16 Views

239

Basic4Android Gua del principiante

RemoveViewAt (ndice como Int)


RequestFocus As Boolean
SendToBack
SetBackgroundImage (mapa de bits como android.graphics.Bitmap)
SetLayout (izquierda como Int, Top como Int, Int ancho, altura como Int)
Etiqueta como objeto
Ttulo como CharSequence
Top como Int
Ancho como Int
Descripcin de los miembros:
ACTION_DOWN como Int
ACTION_MOVE como Int
ACTION_UP como Int
AddMenuItem (ttulo como cadena, EventName As String)
Agrega un elemento de men a la actividad.
Ttulo: ttulo del elemento de men.
EventName - el prefijo del nombre de sub que controlar el evento click.
Slo debe llamar a este mtodo dentro de sub Activity_Create.
Tenga en cuenta que el valor de 'Remitente' dentro del evento click es igual al texto del elemento de men haga clic.
Ejemplo:
Activity.AddMenuItem (\"Abrir archivo\", \"OpenFile\")
...
Sub OpenFile_Click
...
End Sub
AddMenuItem2 (ttulo como cadena, EventName como cadena, Bitmap como
Android.Graphics.Bitmap)
Agrega un elemento de men a la actividad.
Ttulo: ttulo del elemento de men.
EventName - el prefijo del nombre de sub que controlar el evento click.
Mapa de bits - mapa de bits para dibujar como el fondo del elemento.
Slo los primeros cinco (o seis si hay seis total) elementos del men Mostrar iconos.
Slo debe llamar a este mtodo dentro de sub Activity_Create.
Tenga en cuenta que el valor de 'Remitente' dentro del evento click es igual al texto del elemento de men haga clic.
Ejemplo:
Activity.AddMenuItem2 (\"Abrir archivo\", \"OpenFile\",
LoadBitmap (File.DirAssets, \"SomeImage.png\"))

16 Views

240

Basic4Android Gua del principiante

...
Sub OpenFile_Click
...
End Sub
AddView (vista como android.view.View, izquierda como Int, Top como Int, ancho como Int, altura como
Int)
Agrega una vista a esta actividad.
Antecedentes como android.graphics.drawable.Drawable
Obtiene o establece el fondo dibujable.
BringToFront
Cambia el orden z de este punto de vista y lo trae al frente.
Color como Int [slo escritura]
Define el fondo de la vista para ser un ColorDrawable con el color especificado.
Si el fondo actual es de tipo GradientDrawable o ColorDrawable sern las esquinas redondas
mantenido.
Acabado
Cierra esta actividad.
GetView (ndice como Int) como vista
Obtiene la vista que se almacena en el ndice especificado.
Altura como Int
Inicializar (EventName As String)
Invalidar
Invalida la vista toda forzando la vista para dibujar a s mismo.
Dibujar slo suceder cuando el programa puede procesar los mensajes. Generalmente cuando termina
ejecutando el cdigo actual.
Invalidate2 (Rect como android.graphics.Rect)
Invalida el rectngulo dado.
Dibujar slo suceder cuando el programa puede procesar los mensajes. Generalmente cuando termina
ejecutando el cdigo actual.
Invalidate3 (izquierda como Int, Top como Int, Int, como inferior como Int)
Invalida el rectngulo dado.
Dibujar slo suceder cuando el programa puede procesar los mensajes. Generalmente cuando termina
ejecutando el cdigo actual.
IsInitialized As Boolean
Izquierda como Int

16 Views

241

Basic4Android Gua del principiante

LoadLayout (diseo como cadena) como LayoutValues


Carga un archivo de diseo (.bal).
Devuelve el LayoutValues de la variante de diseo actual que se carg.
NumberOfViews como Int [slo lectura]
Devuelve el nmero de puntos de vista del nio.
RemoveView
Quita este punto de vista de su padre.
RemoveViewAt (ndice como Int)
Quita la vista que se almacena en el ndice especificado.
RequestFocus As Boolean
Intenta ajustar el enfoque a esta vista.
Devuelve True si el foco se estableci.
SendToBack
Cambia el orden z de este punto de vista y lo enva a la parte posterior.
SetBackgroundImage (mapa de bits como android.graphics.Bitmap)
SetLayout (izquierda como Int, Top como Int, Int ancho, altura como Int)
Cambia el tamao y posicin de la vista.
Etiqueta como objeto

Obtiene o establece el valor de la etiqueta. Este es un marcador de posicin que puede utilizar para almacenar datos adiciona
Ttulo como CharSequence
Top como Int
Ancho como Int
Obtiene o establece el ancho de la vista.

16.2 Botn

Una vista de botn.


Si se cambia el fondo del botn generalmente desear utilizar StateListDrawable que permite
establecer el \"valor predeterminado\" dibujable
y el \"presionado\" dibujable.
Esto es un 'objeto de actividad', no se puede declarar bajo Sub Process_Globals.
Eventos:

16 Views

242

Basic4Android Gua del principiante

Abajo
Arriba
Haga clic en
LongClick
Miembros:
Antecedentes como android.graphics.drawable.Drawable
BringToFront
Color como Int [slo escritura]
Habilitado como Boolean
Gravedad como Int
Altura como Int
Inicializar (EventName As String)
Invalidar
Invalidate2 (Rect como android.graphics.Rect)
Invalidate3 (izquierda como Int, Top como Int, Int, como inferior como Int)
IsInitialized As Boolean
Izquierda como Int
RemoveView
RequestFocus As Boolean
SendToBack
SetBackgroundImage (mapa de bits como android.graphics.Bitmap)
SetLayout (izquierda como Int, Top como Int, Int ancho, altura como Int)
Etiqueta como objeto
Texto As String
TextColor como Int
TextSize como flotador
Top como Int
Tipografa como android.graphics.Typeface

16 Views

243

Basic4Android Gua del principiante

Visible como Boolean


Ancho como Int
Descripcin de los miembros:
Antecedentes como android.graphics.drawable.Drawable
Obtiene o establece el fondo dibujable.
BringToFront
Cambia el orden z de este punto de vista y lo trae al frente.
Color como Int [slo escritura]
Define el fondo de la vista para ser un ColorDrawable con el color especificado.
Si el fondo actual es de tipo GradientDrawable o ColorDrawable sern las esquinas redondas
mantenido.
Habilitado como Boolean
Gravedad como Int
Altura como Int
Inicializar (EventName As String)
Invalidar
Invalida la vista toda forzando la vista para dibujar a s mismo.
Dibujar slo suceder cuando el programa puede procesar los mensajes. Generalmente cuando termina
ejecutando el cdigo actual.
Invalidate2 (Rect como android.graphics.Rect)
Invalida el rectngulo dado.
Dibujar slo suceder cuando el programa puede procesar los mensajes. Generalmente cuando termina
ejecutando el cdigo actual.
Invalidate3 (izquierda como Int, Top como Int, Int, como inferior como Int)
Invalida el rectngulo dado.
Dibujar slo suceder cuando el programa puede procesar los mensajes. Generalmente cuando termina
ejecutando el cdigo actual.
IsInitialized As Boolean
Izquierda como Int
RemoveView
Quita este punto de vista de su padre.
RequestFocus As Boolean

16 Views

244

Basic4Android Gua del principiante

Intenta ajustar el enfoque a esta vista.


Devuelve True si el foco se estableci.
SendToBack
Cambia el orden z de este punto de vista y lo enva a la parte posterior.
SetBackgroundImage (mapa de bits como android.graphics.Bitmap)
SetLayout (izquierda como Int, Top como Int, Int ancho, altura como Int)
Cambia el tamao y posicin de la vista.
Etiqueta como objeto

Obtiene o establece el valor de la etiqueta. Este es un marcador de posicin que puede utilizar para almacenar datos adiciona
Texto As String
TextColor como Int
TextSize como flotador
Top como Int
Tipografa como android.graphics.Typeface
Visible como Boolean
Ancho como Int
Obtiene o establece el ancho de la vista.

16.3 Casilla de verificacin

Una vista de la casilla de verificacin. A diferencia de los botones de opcin cada casilla puede comprobarse de forma inde
Esto es un 'objeto de actividad', no se puede declarar bajo Sub Process_Globals.
Eventos:
CheckedChange (marcada As Boolean)
Miembros:
Antecedentes como android.graphics.drawable.Drawable
BringToFront
Comprobar As Boolean
Color como Int [slo escritura]

16 Views

245

Basic4Android Gua del principiante

Habilitado como Boolean


Gravedad como Int
Altura como Int
Inicializar (EventName As String)
Invalidar
Invalidate2 (Rect como android.graphics.Rect)
Invalidate3 (izquierda como Int, Top como Int, Int, como inferior como Int)
IsInitialized As Boolean
Izquierda como Int
RemoveView
RequestFocus As Boolean
SendToBack
SetBackgroundImage (mapa de bits como android.graphics.Bitmap)
SetLayout (izquierda como Int, Top como Int, Int ancho, altura como Int)
Etiqueta como objeto
Texto As String
TextColor como Int
TextSize como flotador
Top como Int
Tipografa como android.graphics.Typeface
Visible como Boolean
Ancho como Int
Descripcin de los miembros:
Antecedentes como android.graphics.drawable.Drawable
Obtiene o establece el fondo dibujable.
BringToFront
Cambia el orden z de este punto de vista y lo trae al frente.

16 Views

246

Basic4Android Gua del principiante

Comprobar As Boolean
Color como Int [slo escritura]
Define el fondo de la vista para ser un ColorDrawable con el color especificado.
Si el fondo actual es de tipo GradientDrawable o ColorDrawable sern las esquinas redondas
mantenido.
Habilitado como Boolean
Gravedad como Int
Altura como Int
Inicializar (EventName As String)
Invalidar
Invalida la vista toda forzando la vista para dibujar a s mismo.
Dibujar slo suceder cuando el programa puede procesar los mensajes. Generalmente cuando termina
ejecutando el cdigo actual.
Invalidate2 (Rect como android.graphics.Rect)
Invalida el rectngulo dado.
Dibujar slo suceder cuando el programa puede procesar los mensajes. Generalmente cuando termina
ejecutando el cdigo actual.
Invalidate3 (izquierda como Int, Top como Int, Int, como inferior como Int)
Invalida el rectngulo dado.
Dibujar slo suceder cuando el programa puede procesar los mensajes. Generalmente cuando termina
ejecutando el cdigo actual.
IsInitialized As Boolean
Izquierda como Int
RemoveView
Quita este punto de vista de su padre.
RequestFocus As Boolean
Intenta ajustar el enfoque a esta vista.
Devuelve True si el foco se estableci.
SendToBack
Cambia el orden z de este punto de vista y lo enva a la parte posterior.
SetBackgroundImage (mapa de bits como android.graphics.Bitmap)
SetLayout (izquierda como Int, Top como Int, Int ancho, altura como Int)
Cambia el tamao y posicin de la vista.
Etiqueta como objeto

16 Views

247

Basic4Android Gua del principiante

Obtiene o establece el valor de la etiqueta. Este es un marcador de posicin que puede utilizar para almacenar datos adiciona
Texto As String
TextColor como Int
TextSize como flotador
Top como Int
Tipografa como android.graphics.Typeface
Visible como Boolean
Ancho como Int
Obtiene o establece el ancho de la vista.

16.4 EditText

EditText es una vista que permite al usuario escribir texto libre (similar al control TextBox de formularios Windows Forms).
El EditText tiene dos modos; Previsualiza y MultiLine. Puede establecer que sea multilnea llamando
EditText1.SingleLine = False
En la mayora de los dispositivos el teclado en pantalla mostrar automticamente cuando el usuario presiona sobre el EditTex
Puede cambiar la propiedad InputType y cambiar el tipo de teclado que aparece.
Por ejemplo: EditText1.InputType = EditText1.INPUT_TYPE_NUMBERS causar
el teclado numrico para aparecer cuando
el usuario presiona el EditText. Tenga en cuenta que tambin causar el EditText aceptar slo nmeros.
El evento TextChanged se activa siempre que los cambios de texto e incluye las cadenas nuevas y viejas.
El evento EnterPressed se activa cuando el usuario presiona la tecla enter o la tecla de accin (hecho o siguiente).
Esto es un 'objeto de actividad', no se puede declarar bajo Sub Process_Globals.
Eventos:
TextChanged (antiguo como cadena, de nuevo como cadena)
EnterPressed
Miembros:
Antecedentes como android.graphics.drawable.Drawable
BringToFront
Color como Int [slo escritura]
Habilitado como Boolean
ForceDoneButton As Boolean [slo escritura]

16 Views

248

Basic4Android Gua del principiante

Gravedad como Int


Altura como Int
Sugerencia como cadena
HintColor como Int
Inicializar (EventName As String)
INPUT_TYPE_DECIMAL_NUMBERS como Int
INPUT_TYPE_NONE como Int
INPUT_TYPE_NUMBERS como Int
INPUT_TYPE_PHONE como Int
INPUT_TYPE_TEXT como Int
InputType como Int
Invalidar
Invalidate2 (Rect como android.graphics.Rect)
Invalidate3 (izquierda como Int, Top como Int, Int, como inferior como Int)
IsInitialized As Boolean
Izquierda como Int
PasswordMode As Boolean [slo escritura]
RemoveView
RequestFocus As Boolean
SelectAll
SelectionStart como Int
SendToBack
SetBackgroundImage (mapa de bits como android.graphics.Bitmap)
SetLayout (izquierda como Int, Top como Int, Int ancho, altura como Int)
Previsualiza As Boolean [slo escritura]
Etiqueta como objeto

16 Views

249

Basic4Android Gua del principiante

Texto As String
TextColor como Int
TextSize como flotador
Top como Int
Tipografa como android.graphics.Typeface
Visible como Boolean
Ancho como Int
Envuelva As Boolean [slo escritura]
Descripcin de los miembros:
Antecedentes como android.graphics.drawable.Drawable
Obtiene o establece el fondo dibujable.
BringToFront
Cambia el orden z de este punto de vista y lo trae al frente.
Color como Int [slo escritura]
Define el fondo de la vista para ser un ColorDrawable con el color especificado.
Si el fondo actual es de tipo GradientDrawable o ColorDrawable sern las esquinas redondas
mantenido.
Habilitado como Boolean
ForceDoneButton As Boolean [slo escritura]
Por defecto el sistema operativo establece la clave de la accin de teclado virtual para mostrar Done o siguiente segn la
diseo especfico.
Puede forzar que se muestre realizado por establecer este valor en True.
Ejemplo:
EditText1.ForceDoneButton = True
Gravedad como Int
Altura como Int
Sugerencia como cadena
Obtiene o establece el texto que aparecer cuando el EditText est vaca.
Ejemplo:
EditText1.Hint = \"Ingrese el nombre de usuario\"
HintColor como Int

16 Views

250

Basic4Android Gua del principiante

Obtiene o establece el color del texto de sugerencia.


Ejemplo:
EditText1.HintColor = Colors.Gray
Inicializar (EventName As String)
INPUT_TYPE_DECIMAL_NUMBERS como Int
Se mostrar el teclado numrico. Se aceptan nmeros, punto decimal y signo.
INPUT_TYPE_NONE como Int
No se mostrar teclado.
INPUT_TYPE_NUMBERS como Int
Se mostrar el teclado numrico. Se aceptan slo nmeros.
INPUT_TYPE_PHONE como Int
Teclado se mostrar en modo telfono.
INPUT_TYPE_TEXT como Int
Modo de texto predeterminado.
InputType como Int

Obtiene o establece el indicador de tipo de entrada. Este indicador se utiliza para determinar la configuracin del teclado virtu
Ejemplo:
EditText1.InputType = EditText1.INPUT_TYPE_NUMBERS
Invalidar
Invalida la vista toda forzando la vista para dibujar a s mismo.
Dibujar slo suceder cuando el programa puede procesar los mensajes. Generalmente cuando termina
ejecutando el cdigo actual.
Invalidate2 (Rect como android.graphics.Rect)
Invalida el rectngulo dado.
Dibujar slo suceder cuando el programa puede procesar los mensajes. Generalmente cuando termina
ejecutando el cdigo actual.
Invalidate3 (izquierda como Int, Top como Int, Int, como inferior como Int)
Invalida el rectngulo dado.
Dibujar slo suceder cuando el programa puede procesar los mensajes. Generalmente cuando termina
ejecutando el cdigo actual.
IsInitialized As Boolean
Izquierda como Int
PasswordMode As Boolean [slo escritura]
Establece si el EditText debe estar en modo de contrasea y ocultar los personajes reales.

16 Views

251

Basic4Android Gua del principiante

RemoveView
Quita este punto de vista de su padre.
RequestFocus As Boolean
Intenta ajustar el enfoque a esta vista.
Devuelve True si el foco se estableci.
SelectAll
Selecciona todo el texto.
SelectionStart como Int
Obtiene o establece la posicin de inicio de la seleccin (o la posicin del cursor).
Devuelve -1 Si no hay seleccin o cursor.
SendToBack
Cambia el orden z de este punto de vista y lo enva a la parte posterior.
SetBackgroundImage (mapa de bits como android.graphics.Bitmap)
SetLayout (izquierda como Int, Top como Int, Int ancho, altura como Int)
Cambia el tamao y posicin de la vista.
Previsualiza As Boolean [slo escritura]
Establece si el EditText debe estar en modo de lnea nica o varias lneas.
Etiqueta como objeto

Obtiene o establece el valor de la etiqueta. Este es un marcador de posicin que puede utilizar para almacenar datos adiciona
Texto As String
TextColor como Int
TextSize como flotador
Top como Int
Tipografa como android.graphics.Typeface
Visible como Boolean
Ancho como Int
Obtiene o establece el ancho de la vista.
Envuelva As Boolean [slo escritura]
Establece si el contenido del texto se ajustar dentro de los lmites de EditText. Pertinentes cuando la EditText
en modo multilnea.
Ejemplo:
EditText1.Wrap = False

16 Views

252

Basic4Android Gua del principiante

16.5 ImageView

Una vista que muestra una imagen.


Puede asignar un mapa de bits mediante la propiedad de mapa de bits.
La propiedad de gravedad cambia la manera en que aparece la imagen.
Los dos valores ms relevantes son Gravity.FILL (que causa la imagen llenar toda la vista)
y Gravity.CENTER (que se dibuja la imagen en el centro de la vista).
Esto es un 'objeto de actividad', no se puede declarar bajo Sub Process_Globals.
Eventos:
Haga clic en
LongClick
Miembros:
Antecedentes como android.graphics.drawable.Drawable
Mapa de bits como android.graphics.Bitmap
BringToFront
Color como Int [slo escritura]
Habilitado como Boolean
Gravedad como Int
Altura como Int
Inicializar (EventName As String)
Invalidar
Invalidate2 (Rect como android.graphics.Rect)
Invalidate3 (izquierda como Int, Top como Int, Int, como inferior como Int)
IsInitialized As Boolean
Izquierda como Int

16 Views

253

Basic4Android Gua del principiante

RemoveView
RequestFocus As Boolean
SendToBack
SetBackgroundImage (mapa de bits como android.graphics.Bitmap)
SetLayout (izquierda como Int, Top como Int, Int ancho, altura como Int)
Etiqueta como objeto
Top como Int
Visible como Boolean
Ancho como Int
Descripcin de los miembros:
Antecedentes como android.graphics.drawable.Drawable
Obtiene o establece el fondo dibujable.
Mapa de bits como android.graphics.Bitmap
Obtiene o establece el mapa de bits asignado a la ImageView.
Ejemplo:
ImageView1.Bitmap = LoadBitmap (File.DirAssets, \"someimage.jpg\")
BringToFront
Cambia el orden z de este punto de vista y lo trae al frente.
Color como Int [slo escritura]
Define el fondo de la vista para ser un ColorDrawable con el color especificado.
Si el fondo actual es de tipo GradientDrawable o ColorDrawable sern las esquinas redondas
mantenido.
Habilitado como Boolean
Gravedad como Int
Obtiene o establece la gravedad asignada a los mapas de bits.
Ejemplo:
ImageView1.Gravity = Gravity.Fill
Altura como Int
Inicializar (EventName As String)
Invalidar

16 Views

254

Basic4Android Gua del principiante

Invalida la vista toda forzando la vista para dibujar a s mismo.


Dibujar slo suceder cuando el programa puede procesar los mensajes. Generalmente cuando termina
ejecutando el cdigo actual.
Invalidate2 (Rect como android.graphics.Rect)
Invalida el rectngulo dado.
Dibujar slo suceder cuando el programa puede procesar los mensajes. Generalmente cuando termina
ejecutando el cdigo actual.
Invalidate3 (izquierda como Int, Top como Int, Int, como inferior como Int)
Invalida el rectngulo dado.
Dibujar slo suceder cuando el programa puede procesar los mensajes. Generalmente cuando termina
ejecutando el cdigo actual.
IsInitialized As Boolean
Izquierda como Int
RemoveView
Quita este punto de vista de su padre.
RequestFocus As Boolean
Intenta ajustar el enfoque a esta vista.
Devuelve True si el foco se estableci.
SendToBack
Cambia el orden z de este punto de vista y lo enva a la parte posterior.
SetBackgroundImage (mapa de bits como android.graphics.Bitmap)
SetLayout (izquierda como Int, Top como Int, Int ancho, altura como Int)
Cambia el tamao y posicin de la vista.
Etiqueta como objeto

Obtiene o establece el valor de la etiqueta. Este es un marcador de posicin que puede utilizar para almacenar datos adiciona
Top como Int
Visible como Boolean
Ancho como Int
Obtiene o establece el ancho de la vista.

16 Views

255

Basic4Android Gua del principiante

16.6 Etiqueta

Una vista de etiqueta que muestra el texto de slo lectura.


Esto es un 'objeto de actividad', no se puede declarar bajo Sub Process_Globals.
Eventos:
Haga clic en
LongClick
Miembros:
Antecedentes como android.graphics.drawable.Drawable
BringToFront
Color como Int [slo escritura]
Habilitado como Boolean
Gravedad como Int
Altura como Int
Inicializar (EventName As String)
Invalidar
Invalidate2 (Rect como android.graphics.Rect)
Invalidate3 (izquierda como Int, Top como Int, Int, como inferior como Int)
IsInitialized As Boolean
Izquierda como Int
RemoveView
RequestFocus As Boolean
SendToBack
SetBackgroundImage (mapa de bits como android.graphics.Bitmap)
SetLayout (izquierda como Int, Top como Int, Int ancho, altura como Int)
Etiqueta como objeto
Texto As String

16 Views

256

Basic4Android Gua del principiante

TextColor como Int


TextSize como flotador
Top como Int
Tipografa como android.graphics.Typeface
Visible como Boolean
Ancho como Int
Descripcin de los miembros:
Antecedentes como android.graphics.drawable.Drawable
Obtiene o establece el fondo dibujable.
BringToFront
Cambia el orden z de este punto de vista y lo trae al frente.
Color como Int [slo escritura]
Define el fondo de la vista para ser un ColorDrawable con el color especificado.
Si el fondo actual es de tipo GradientDrawable o ColorDrawable sern las esquinas redondas
mantenido.
Habilitado como Boolean
Gravedad como Int
Altura como Int
Inicializar (EventName As String)
Invalidar
Invalida la vista toda forzando la vista para dibujar a s mismo.
Dibujar slo suceder cuando el programa puede procesar los mensajes. Generalmente cuando termina
ejecutando el cdigo actual.
Invalidate2 (Rect como android.graphics.Rect)
Invalida el rectngulo dado.
Dibujar slo suceder cuando el programa puede procesar los mensajes. Generalmente cuando termina
ejecutando el cdigo actual.
Invalidate3 (izquierda como Int, Top como Int, Int, como inferior como Int)
Invalida el rectngulo dado.
Dibujar slo suceder cuando el programa puede procesar los mensajes. Generalmente cuando termina
ejecutando el cdigo actual.
IsInitialized As Boolean

16 Views

257

Basic4Android Gua del principiante

Izquierda como Int


RemoveView
Quita este punto de vista de su padre.
RequestFocus As Boolean
Intenta ajustar el enfoque a esta vista.
Devuelve True si el foco se estableci.
SendToBack
Cambia el orden z de este punto de vista y lo enva a la parte posterior.
SetBackgroundImage (mapa de bits como android.graphics.Bitmap)
SetLayout (izquierda como Int, Top como Int, Int ancho, altura como Int)
Cambia el tamao y posicin de la vista.
Etiqueta como objeto

Obtiene o establece el valor de la etiqueta. Este es un marcador de posicin que puede utilizar para almacenar datos adiciona
Texto As String
TextColor como Int
TextSize como flotador
Top como Int
Tipografa como android.graphics.Typeface
Visible como Boolean
Ancho como Int
Obtiene o establece el ancho de la vista.

16 Views

258

Basic4Android Gua del principiante

16.7 ListView

ListView es una vista muy til que puede manejar las listas de grandes y pequeas.
El control ListView provoca dos eventos. ItemClick se provoca cuando se hace clic en un elemento y es ItemLongClick
provoca cuando un elemento est seleccionado y celebrado.
Consulte el tutorial de ListView para obtener ms informacin.
Esto es un 'objeto de actividad', no se puede declarar bajo Sub Process_Globals.
Eventos:
ItemClick (posicin como Int, valor como objeto)
ItemLongClick (posicin como Int, valor como objeto)
Miembros:
AddSingleLine (texto As String)
AddSingleLine2 (texto As String, ReturnValue como objeto)
AddTwoLines (Text1 como cadena, Text2 As String)
AddTwoLines2 (Text1 Text2 como cadena, cadena, ReturnValue como objeto)
AddTwoLinesAndBitmap (Text1 como cadena, Text2 como cadena, mapa de bits como
Android.Graphics.Bitmap)

16 Views

259

Basic4Android Gua del principiante

AddTwoLinesAndBitmap2 (Text1 como cadena, Text2 como cadena, Bitmap como


Android.Graphics.Bitmap, ReturnValue As Object)
Antecedentes como android.graphics.drawable.Drawable
BringToFront
Claro
Color como Int [slo escritura]
Habilitado como Boolean
FastScrollEnabled As Boolean
GetItem (ndice como Int) como objeto
Altura como Int
Inicializar (EventName As String)
Invalidar
Invalidate2 (Rect como android.graphics.Rect)
Invalidate3 (izquierda como Int, Top como Int, Int, como inferior como Int)
IsInitialized As Boolean
Izquierda como Int
RemoveAt (ndice como Int)
RemoveView
RequestFocus As Boolean
ScrollingBackgroundColor como Int [slo escritura]
SendToBack
SetBackgroundImage (mapa de bits como android.graphics.Bitmap)
SetLayout (izquierda como Int, Top como Int, Int ancho, altura como Int)
SingleLineLayout como SingleLineLayout [slo lectura]
Tamao como Int [slo lectura]
Etiqueta como objeto
Top como Int

16 Views

260

Basic4Android Gua del principiante

TwoLinesAndBitmap como TwoLinesAndBitmapLayout [slo lectura]


TwoLinesLayout como TwoLinesLayout [slo lectura]
Visible como Boolean
Ancho como Int
Descripcin de los miembros:
AddSingleLine (texto As String)
Agrega un elemento de lnea nico.
Ejemplo:
ListView1.AddSingleLine(\"Sunday\")
AddSingleLine2 (texto As String, ReturnValue como objeto)
Agrega un elemento de lnea nico.
Especificado devuelva valor ser devuelto al llamar a GetItem o en el caso de ItemClick.
Ejemplo:
ListView1.AddSingleLine2 (\"Domingo\", 1)
AddTwoLines (Text1 como cadena, Text2 As String)
Agrega un elemento de dos lneas.
Ejemplo:
ListView1.AddTwoLines (\"Esta es la primera lnea.\", \"Y esto es el
segundo\")
AddTwoLines2 (Text1 Text2 como cadena, cadena, ReturnValue como objeto)
Agrega un elemento de dos lneas.
Especificado devuelva valor ser devuelto al llamar a GetItem o en el caso de ItemClick.
AddTwoLinesAndBitmap (Text1 como cadena, Text2 como cadena, mapa de bits como
Android.Graphics.Bitmap)
Agrega un dos lneas y un elemento de mapa de bits.
Ejemplo:
ListView1.AddTwoLinesAndBitmap (\"Primera lnea\", \"Segunda lnea\",
LoadBitmap (File.DirAssets, \"SomeImage.png\"))
AddTwoLinesAndBitmap2 (Text1 como cadena, Text2 como cadena, Bitmap como
Android.Graphics.Bitmap, ReturnValue As Object)
Agrega un dos lneas y un elemento de mapa de bits.
Especificado devuelva valor ser devuelto al llamar a GetItem o en el caso de ItemClick.
Antecedentes como android.graphics.drawable.Drawable
Obtiene o establece el fondo dibujable.
BringToFront
Cambia el orden z de este punto de vista y lo trae al frente.

16 Views

261

Basic4Android Gua del principiante

Claro
Borra todos los elementos de la lista.
Color como Int [slo escritura]
Define el fondo de la vista para ser un ColorDrawable con el color especificado.
Si el fondo actual es de tipo GradientDrawable o ColorDrawable sern las esquinas redondas
mantenido.
Habilitado como Boolean
FastScrollEnabled As Boolean
Obtiene o establece si el icono de desplazamiento rpido aparecer cuando el usuario desplaza a la lista.
El valor predeterminado es false.
GetItem (ndice como Int) como objeto
Devuelve el valor del elemento en la posicin especificada.
Devuelve el \"valor de retorno\" si fue creado y si no devuelve el texto de la primera lnea.
Altura como Int
Inicializar (EventName As String)
Invalidar
Invalida la vista toda forzando la vista para dibujar a s mismo.
Dibujar slo suceder cuando el programa puede procesar los mensajes. Generalmente cuando termina
ejecutando el cdigo actual.
Invalidate2 (Rect como android.graphics.Rect)
Invalida el rectngulo dado.
Dibujar slo suceder cuando el programa puede procesar los mensajes. Generalmente cuando termina
ejecutando el cdigo actual.
Invalidate3 (izquierda como Int, Top como Int, Int, como inferior como Int)
Invalida el rectngulo dado.
Dibujar slo suceder cuando el programa puede procesar los mensajes. Generalmente cuando termina
ejecutando el cdigo actual.
IsInitialized As Boolean
Izquierda como Int
RemoveAt (ndice como Int)
Quita el elemento en la posicin especificada.
RemoveView
Quita este punto de vista de su padre.
RequestFocus As Boolean

16 Views

262

Basic4Android Gua del principiante

Intenta ajustar el enfoque a esta vista.


Devuelve True si el foco se estableci.
ScrollingBackgroundColor como Int [slo escritura]
Establece el color de fondo que se utilizar mientras se desplaza la lista.
Esto es una optimizacin que hacer para que el desplazamiento ms suave.
Establecida
en
Si el fondo detrs de la lista no es un color slido.
Colors.transparent
El valor por defecto es negro.
SendToBack
Cambia el orden z de este punto de vista y lo enva a la parte posterior.
SetBackgroundImage (mapa de bits como android.graphics.Bitmap)
SetLayout (izquierda como Int, Top como Int, Int ancho, altura como Int)
Cambia el tamao y posicin de la vista.
SingleLineLayout como SingleLineLayout [slo lectura]
Devuelve el esquema que se utiliza para mostrar los elementos de lnea nico.
Puede cambiar los valores de diseo para cambiar la apariencia de dichos elementos.
Ejemplo:
Dim Label1 As Label
Label1 = ListView1.SingleLineLayout.Label
Label1.TextSize = 20
Label1.textColor = Colors.Green
Tamao como Int [slo lectura]
Devuelve el nmero de elementos almacenados en la lista.
Etiqueta como objeto

Obtiene o establece el valor de la etiqueta. Este es un marcador de posicin que puede utilizar para almacenar datos adiciona
Top como Int
TwoLinesAndBitmap como TwoLinesAndBitmapLayout [slo lectura]
Devuelve el esquema que se utiliza para mostrar dos lneas y elementos de mapa de bits.
Puede cambiar los valores de diseo para cambiar la apariencia de dichos elementos.
Por ejemplo, si desea quitar la segunda etiqueta (en todos los artculos con este diseo):
ListView1.TwoLinesAndBitmap.SecondLabel.Visible = False
TwoLinesLayout como TwoLinesLayout [slo lectura]
Devuelve el esquema que se utiliza para mostrar elementos de dos lneas.
Puede cambiar los valores de diseo para cambiar la apariencia de dichos elementos.
Ejemplo:
Dim Label1 As Label
Label1 = ListView1.TwoLinesLayout.SecondLabel
Label1.TextSize = 20
Label1.textColor = Colors.Green

16 Views

263

Basic4Android Gua del principiante

Visible como Boolean


Ancho como Int
Obtiene o establece el ancho de la vista.

16.8 Panel

Un Panel es una vista que contiene otras vistas de nio.


Puede agregar vistas de nio mediante programacin o mediante carga un archivo de diseo.
El Panel provoca el evento de toque. El primer parmetro de este evento es la accin que es uno de los
Constantes de accin de la actividad.
Esto es un 'objeto de actividad', no se puede declarar bajo Sub Process_Globals.
Eventos:
Toque (accin como Int, X como flotador, Y como Float)
Haga clic en
LongClick
Miembros:
AddView (vista como android.view.View, izquierda como Int, Top como Int, ancho como Int, altura como Int)
Antecedentes como android.graphics.drawable.Drawable
BringToFront
Color como Int [slo escritura]
Habilitado como Boolean
GetView (ndice como Int) como vista
Altura como Int
Inicializar (EventName As String)
Invalidar
Invalidate2 (Rect como android.graphics.Rect)
Invalidate3 (izquierda como Int, Top como Int, Int, como inferior como Int)

16 Views

264

Basic4Android Gua del principiante

IsInitialized As Boolean
Izquierda como Int
LoadLayout (diseo como cadena) como LayoutValues
NumberOfViews como Int [slo lectura]
RemoveView
RemoveViewAt (ndice como Int)
RequestFocus As Boolean
SendToBack
SetBackgroundImage (mapa de bits como android.graphics.Bitmap)
SetLayout (izquierda como Int, Top como Int, Int ancho, altura como Int)
Etiqueta como objeto
Top como Int
Visible como Boolean
Ancho como Int
Descripcin de los miembros:
AddView (vista como android.view.View, izquierda como Int, Top como Int, ancho como Int, altura como
Int)
Agrega una vista a este panel.
Antecedentes como android.graphics.drawable.Drawable
Obtiene o establece el fondo dibujable.
BringToFront
Cambia el orden z de este punto de vista y lo trae al frente.
Color como Int [slo escritura]
Define el fondo de la vista para ser un ColorDrawable con el color especificado.
Si el fondo actual es de tipo GradientDrawable o ColorDrawable sern las esquinas redondas
mantenido.
Habilitado como Boolean
GetView (ndice como Int) como vista
Obtiene la vista que se almacena en el ndice especificado.

16 Views

265

Basic4Android Gua del principiante

Altura como Int


Inicializar (EventName As String)
Invalidar
Invalida la vista toda forzando la vista para dibujar a s mismo.
Dibujar slo suceder cuando el programa puede procesar los mensajes. Generalmente cuando termina
ejecutando el cdigo actual.
Invalidate2 (Rect como android.graphics.Rect)
Invalida el rectngulo dado.
Dibujar slo suceder cuando el programa puede procesar los mensajes. Generalmente cuando termina
ejecutando el cdigo actual.
Invalidate3 (izquierda como Int, Top como Int, Int, como inferior como Int)
Invalida el rectngulo dado.
Dibujar slo suceder cuando el programa puede procesar los mensajes. Generalmente cuando termina
ejecutando el cdigo actual.
IsInitialized As Boolean
Izquierda como Int
LoadLayout (diseo como cadena) como LayoutValues
Carga un archivo de diseo para este panel. Devuelve el valor de la variante de diseo elegido.
NumberOfViews como Int [slo lectura]
Devuelve el nmero de puntos de vista del nio.
RemoveView
Quita este punto de vista de su padre.
RemoveViewAt (ndice como Int)
Quita la vista que se almacena en el ndice especificado.
RequestFocus As Boolean
Intenta ajustar el enfoque a esta vista.
Devuelve True si el foco se estableci.
SendToBack
Cambia el orden z de este punto de vista y lo enva a la parte posterior.
SetBackgroundImage (mapa de bits como android.graphics.Bitmap)
SetLayout (izquierda como Int, Top como Int, Int ancho, altura como Int)
Cambia el tamao y posicin de la vista.
Etiqueta como objeto

16 Views

266

Basic4Android Gua del principiante

Obtiene o establece el valor de la etiqueta. Este es un marcador de posicin que puede utilizar para almacenar datos adiciona
Top como Int
Visible como Boolean
Ancho como Int
Obtiene o establece el ancho de la vista.

16.9 ProgressBar

Una vista de la barra de progreso. La propiedad de progreso establece el valor de progreso que es entre 0 a 100.
Esto es un 'objeto de actividad', no se puede declarar bajo Sub Process_Globals.
Eventos:
Ninguno
Miembros:
Antecedentes como android.graphics.drawable.Drawable
BringToFront
Color como Int [slo escritura]
Habilitado como Boolean
Altura como Int
Inicializar (EventName As String)
Invalidar
Invalidate2 (Rect como android.graphics.Rect)
Invalidate3 (izquierda como Int, Top como Int, Int, como inferior como Int)
IsInitialized As Boolean
Izquierda como Int
Progreso como Int
RemoveView
RequestFocus As Boolean

16 Views

267

Basic4Android Gua del principiante

SendToBack
SetBackgroundImage (mapa de bits como android.graphics.Bitmap)
SetLayout (izquierda como Int, Top como Int, Int ancho, altura como Int)
Etiqueta como objeto
Top como Int
Visible como Boolean
Ancho como Int
Descripcin de los miembros:
Antecedentes como android.graphics.drawable.Drawable
Obtiene o establece el fondo dibujable.
BringToFront
Cambia el orden z de este punto de vista y lo trae al frente.
Color como Int [slo escritura]
Define el fondo de la vista para ser un ColorDrawable con el color especificado.
Si el fondo actual es de tipo GradientDrawable o ColorDrawable sern las esquinas redondas
mantenido.
Habilitado como Boolean
Altura como Int
Inicializar (EventName As String)
Invalidar
Invalida la vista toda forzando la vista para dibujar a s mismo.
Dibujar slo suceder cuando el programa puede procesar los mensajes. Generalmente cuando termina
ejecutando el cdigo actual.
Invalidate2 (Rect como android.graphics.Rect)
Invalida el rectngulo dado.
Dibujar slo suceder cuando el programa puede procesar los mensajes. Generalmente cuando termina
ejecutando el cdigo actual.
Invalidate3 (izquierda como Int, Top como Int, Int, como inferior como Int)
Invalida el rectngulo dado.
Dibujar slo suceder cuando el programa puede procesar los mensajes. Generalmente cuando termina
ejecutando el cdigo actual.
IsInitialized As Boolean

16 Views

268

Basic4Android Gua del principiante

Izquierda como Int


Progreso como Int
Obtiene o establece el valor de progreso.
RemoveView
Quita este punto de vista de su padre.
RequestFocus As Boolean
Intenta ajustar el enfoque a esta vista.
Devuelve True si el foco se estableci.
SendToBack
Cambia el orden z de este punto de vista y lo enva a la parte posterior.
SetBackgroundImage (mapa de bits como android.graphics.Bitmap)
SetLayout (izquierda como Int, Top como Int, Int ancho, altura como Int)
Cambia el tamao y posicin de la vista.
Etiqueta como objeto

Obtiene o establece el valor de la etiqueta. Este es un marcador de posicin que puede utilizar para almacenar datos adiciona
Top como Int
Visible como Boolean
Ancho como Int
Obtiene o establece el ancho de la vista.

16.10 RadioButton

Una vista de RadioButton. Puede comprobarse slo un RadioButton en un grupo. Cuando un diferente
RadioButton se comprueba que todos los dems sern
automticamente estar desactivada. Agrupacin se realiza mediante la adicin de botones de opcin para la misma actividad o
panel.
Esto es un 'objeto de actividad', no se puede declarar bajo Sub Process_Globals.
Eventos:
CheckedChange (marcada As Boolean)
Miembros:
Antecedentes como android.graphics.drawable.Drawable

16 Views

269

Basic4Android Gua del principiante

BringToFront
Comprobar As Boolean
Color como Int [slo escritura]
Habilitado como Boolean
Gravedad como Int
Altura como Int
Inicializar (EventName As String)
Invalidar
Invalidate2 (Rect como android.graphics.Rect)
Invalidate3 (izquierda como Int, Top como Int, Int, como inferior como Int)
IsInitialized As Boolean
Izquierda como Int
RemoveView
RequestFocus As Boolean
SendToBack
SetBackgroundImage (mapa de bits como android.graphics.Bitmap)
SetLayout (izquierda como Int, Top como Int, Int ancho, altura como Int)
Etiqueta como objeto
Texto As String
TextColor como Int
TextSize como flotador
Top como Int
Tipografa como android.graphics.Typeface
Visible como Boolean
Ancho como Int
Descripcin de los miembros:

16 Views

270

Basic4Android Gua del principiante

Antecedentes como android.graphics.drawable.Drawable


Obtiene o establece el fondo dibujable.
BringToFront
Cambia el orden z de este punto de vista y lo trae al frente.
Comprobar As Boolean
Color como Int [slo escritura]
Define el fondo de la vista para ser un ColorDrawable con el color especificado.
Si el fondo actual es de tipo GradientDrawable o ColorDrawable sern las esquinas redondas
mantenido.
Habilitado como Boolean
Gravedad como Int
Altura como Int
Inicializar (EventName As String)
Invalidar
Invalida la vista toda forzando la vista para dibujar a s mismo.
Dibujar slo suceder cuando el programa puede procesar los mensajes. Generalmente cuando termina
ejecutando el cdigo actual.
Invalidate2 (Rect como android.graphics.Rect)
Invalida el rectngulo dado.
Dibujar slo suceder cuando el programa puede procesar los mensajes. Generalmente cuando termina
ejecutando el cdigo actual.
Invalidate3 (izquierda como Int, Top como Int, Int, como inferior como Int)
Invalida el rectngulo dado.
Dibujar slo suceder cuando el programa puede procesar los mensajes. Generalmente cuando termina
ejecutando el cdigo actual.
IsInitialized As Boolean
Izquierda como Int
RemoveView
Quita este punto de vista de su padre.
RequestFocus As Boolean
Intenta ajustar el enfoque a esta vista.
Devuelve True si el foco se estableci.
SendToBack
Cambia el orden z de este punto de vista y lo enva a la parte posterior.

16 Views

271

Basic4Android Gua del principiante

SetBackgroundImage (mapa de bits como android.graphics.Bitmap)


SetLayout (izquierda como Int, Top como Int, Int ancho, altura como Int)
Cambia el tamao y posicin de la vista.
Etiqueta como objeto

Obtiene o establece el valor de la etiqueta. Este es un marcador de posicin que puede utilizar para almacenar datos adiciona
Texto As String
TextColor como Int
TextSize como flotador
Top como Int
Tipografa como android.graphics.Typeface
Visible como Boolean
Ancho como Int
Obtiene o establece el ancho de la vista.

16.11 ScrollView

ScrollView es una vista que contiene otras vistas y permite al usuario desplazarse verticalmente esas opiniones.
Consulte el tutorial de ScrollView para obtener ms informacin.
El ScrollView tiene un panel interior que contiene las opiniones del nio.
Puede agregar vistas llamando al: ScrollView1.Panel.AddView(...)
Esto es un 'objeto de actividad', no se puede declarar bajo Sub Process_Globals.
Eventos:

16 Views

272

Basic4Android Gua del principiante

Ninguno
Miembros:
Antecedentes como android.graphics.drawable.Drawable
BringToFront
Color como Int [slo escritura]
Habilitado como Boolean
FullScroll (abajo As Boolean)
Altura como Int
Inicializar (altura como Int)
Invalidar
Invalidate2 (Rect como android.graphics.Rect)
Invalidate3 (izquierda como Int, Top como Int, Int, como inferior como Int)
IsInitialized As Boolean
Izquierda como Int
Panel como Panel [slo lectura]
RemoveView
RequestFocus As Boolean
ScrollPosition como Int
SendToBack
SetBackgroundImage (mapa de bits como android.graphics.Bitmap)
SetLayout (izquierda como Int, Top como Int, Int ancho, altura como Int)
Etiqueta como objeto
Top como Int
Visible como Boolean
Ancho como Int
Descripcin de los miembros:

16 Views

273

Basic4Android Gua del principiante

Antecedentes como android.graphics.drawable.Drawable


Obtiene o establece el fondo dibujable.
BringToFront
Cambia el orden z de este punto de vista y lo trae al frente.
Color como Int [slo escritura]
Define el fondo de la vista para ser un ColorDrawable con el color especificado.
Si el fondo actual es de tipo GradientDrawable o ColorDrawable sern las esquinas redondas
mantenido.
Habilitado como Boolean
FullScroll (abajo As Boolean)
Desplaza la vista de desplazamiento en la parte superior o inferior.
Altura como Int
Inicializar (altura como Int)
Inicializa el ScrollView y establece su altura panel interior a la altura determinada.
Ms tarde puede cambiar esta altura por llamada ScrollView.Panel.Height.
Dim ScrollView1 As ScrollView
ScrollView1.Initialize(1000dip)
Invalidar
Invalida la vista toda forzando la vista para dibujar a s mismo.
Dibujar slo suceder cuando el programa puede procesar los mensajes. Generalmente cuando termina
ejecutando el cdigo actual.
Invalidate2 (Rect como android.graphics.Rect)
Invalida el rectngulo dado.
Dibujar slo suceder cuando el programa puede procesar los mensajes. Generalmente cuando termina
ejecutando el cdigo actual.
Invalidate3 (izquierda como Int, Top como Int, Int, como inferior como Int)
Invalida el rectngulo dado.
Dibujar slo suceder cuando el programa puede procesar los mensajes. Generalmente cuando termina
ejecutando el cdigo actual.
IsInitialized As Boolean
Izquierda como Int
Panel como Panel [slo lectura]
Devuelve el panel que puede utilizar para agregar vistas a.
Ejemplo:
ScrollView1.Panel.AddView(...)

16 Views

274

Basic4Android Gua del principiante

RemoveView
Quita este punto de vista de su padre.
RequestFocus As Boolean
Intenta ajustar el enfoque a esta vista.
Devuelve True si el foco se estableci.
ScrollPosition como Int
Obtiene o establece la posicin de desplazamiento.
SendToBack
Cambia el orden z de este punto de vista y lo enva a la parte posterior.
SetBackgroundImage (mapa de bits como android.graphics.Bitmap)
SetLayout (izquierda como Int, Top como Int, Int ancho, altura como Int)
Cambia el tamao y posicin de la vista.
Etiqueta como objeto

Obtiene o establece el valor de la etiqueta. Este es un marcador de posicin que puede utilizar para almacenar datos adiciona
Top como Int
Visible como Boolean
Ancho como Int
Obtiene o establece el ancho de la vista.

16.12 SeekBar

Una vista que permite al usuario establecer un valor arrastrando un control deslizante. Similares para WinForms TrackBar.
El evento ValueChanged se produce siempre que se cambia el valor. El parmetro UserChanged puede
utilizarse para distinguir entre cambios realizadas por el usuario y hecho mediante programacin.
Esto es un 'objeto de actividad', no se puede declarar bajo Sub Process_Globals.
Eventos:
ValueChanged (valor como Int, UserChanged As Boolean)
Miembros:
Antecedentes como android.graphics.drawable.Drawable
BringToFront
Color como Int [slo escritura]

16 Views

275

Basic4Android Gua del principiante

Habilitado como Boolean


Altura como Int
Inicializar (EventName As String)
Invalidar
Invalidate2 (Rect como android.graphics.Rect)
Invalidate3 (izquierda como Int, Top como Int, Int, como inferior como Int)
IsInitialized As Boolean
Izquierda como Int
Max como Int
RemoveView
RequestFocus As Boolean
SendToBack
SetBackgroundImage (mapa de bits como android.graphics.Bitmap)
SetLayout (izquierda como Int, Top como Int, Int ancho, altura como Int)
Etiqueta como objeto
Top como Int
Valor como Int
Visible como Boolean
Ancho como Int
Descripcin de los miembros:
Antecedentes como android.graphics.drawable.Drawable
Obtiene o establece el fondo dibujable.
BringToFront
Cambia el orden z de este punto de vista y lo trae al frente.
Color como Int [slo escritura]
Define el fondo de la vista para ser un ColorDrawable con el color especificado.
Si el fondo actual es de tipo GradientDrawable o ColorDrawable sern las esquinas redondas
mantenido.

16 Views

276

Basic4Android Gua del principiante

Habilitado como Boolean


Altura como Int
Inicializar (EventName As String)
Invalidar
Invalida la vista toda forzando la vista para dibujar a s mismo.
Dibujar slo suceder cuando el programa puede procesar los mensajes. Generalmente cuando termina
ejecutando el cdigo actual.
Invalidate2 (Rect como android.graphics.Rect)
Invalida el rectngulo dado.
Dibujar slo suceder cuando el programa puede procesar los mensajes. Generalmente cuando termina
ejecutando el cdigo actual.
Invalidate3 (izquierda como Int, Top como Int, Int, como inferior como Int)
Invalida el rectngulo dado.
Dibujar slo suceder cuando el programa puede procesar los mensajes. Generalmente cuando termina
ejecutando el cdigo actual.
IsInitialized As Boolean
Izquierda como Int
Max como Int
Obtiene o establece el mximo permite valor.
RemoveView
Quita este punto de vista de su padre.
RequestFocus As Boolean
Intenta ajustar el enfoque a esta vista.
Devuelve True si el foco se estableci.
SendToBack
Cambia el orden z de este punto de vista y lo enva a la parte posterior.
SetBackgroundImage (mapa de bits como android.graphics.Bitmap)
SetLayout (izquierda como Int, Top como Int, Int ancho, altura como Int)
Cambia el tamao y posicin de la vista.
Etiqueta como objeto

Obtiene o establece el valor de la etiqueta. Este es un marcador de posicin que puede utilizar para almacenar datos adiciona
Top como Int
Valor como Int

16 Views

277

Basic4Android Gua del principiante

Obtiene o establece el valor actual.


Visible como Boolean
Ancho como Int
Obtiene o establece el ancho de la vista.

16.13 Spinner

Una lista plegada que se abre cuando el usuario hace clic en ella y permite al usuario seleccionar un elemento. Similar a
ComboBox de formularios Windows Forms.
Se provoca el evento de ItemClick cada vez que un usuario presiona sobre un tema (incluso si es el ya seleccionados
elemento).
Esto es un 'objeto de actividad', no se puede declarar bajo Sub Process_Globals.
Eventos:
ItemClick (posicin como Int, valor como objeto)
Miembros:
Add (elemento As String)
AddAll (lista como lista)
Antecedentes como android.graphics.drawable.Drawable
BringToFront
Claro
Color como Int [slo escritura]
Habilitado como Boolean
GetItem (ndice como Int) As String
Altura como Int
IndexOf (valor As String) como Int
Inicializar (EventName As String)
Invalidar
Invalidate2 (Rect como android.graphics.Rect)
Invalidate3 (izquierda como Int, Top como Int, Int, como inferior como Int)

16 Views

278

Basic4Android Gua del principiante

IsInitialized As Boolean
Izquierda como Int
Preguntar como cadena
RemoveAt (ndice como Int)
RemoveView
RequestFocus As Boolean
SelectedIndex como Int
SelectedItem As String [slo lectura]
SendToBack
SetBackgroundImage (mapa de bits como android.graphics.Bitmap)
SetLayout (izquierda como Int, Top como Int, Int ancho, altura como Int)
Tamao como Int [slo lectura]
Etiqueta como objeto
Top como Int
Visible como Boolean
Ancho como Int
Descripcin de los miembros:
Add (elemento As String)
Agrega un elemento.
Ejemplo:
Spinner1.Add(\"Sunday\")
AddAll (lista como lista)
Agrega varios elementos.
Ejemplo:
Spinner1.AddAll (matriz como cadena (\"Domingo\", \"Lunes\",...))
Antecedentes como android.graphics.drawable.Drawable
Obtiene o establece el fondo dibujable.
BringToFront
Cambia el orden z de este punto de vista y lo trae al frente.

16 Views

279

Basic4Android Gua del principiante

Claro
Borra todos los elementos.
Color como Int [slo escritura]
Define el fondo de la vista para ser un ColorDrawable con el color especificado.
Si el fondo actual es de tipo GradientDrawable o ColorDrawable sern las esquinas redondas
mantenido.
Habilitado como Boolean
GetItem (ndice como Int) As String
Devuelve el elemento en el ndice especificado.
Altura como Int
IndexOf (valor As String) como Int
Inicializar (EventName As String)
Invalidar
Invalida la vista toda forzando la vista para dibujar a s mismo.
Dibujar slo suceder cuando el programa puede procesar los mensajes. Generalmente cuando termina
ejecutando el cdigo actual.
Invalidate2 (Rect como android.graphics.Rect)
Invalida el rectngulo dado.
Dibujar slo suceder cuando el programa puede procesar los mensajes. Generalmente cuando termina
ejecutando el cdigo actual.
Invalidate3 (izquierda como Int, Top como Int, Int, como inferior como Int)
Invalida el rectngulo dado.
Dibujar slo suceder cuando el programa puede procesar los mensajes. Generalmente cuando termina
ejecutando el cdigo actual.
IsInitialized As Boolean
Izquierda como Int
Preguntar como cadena
Obtiene o establece el ttulo que se mostrar cuando se abre la ruleta.
RemoveAt (ndice como Int)
Quita el elemento en el ndice especificado.
RemoveView
Quita este punto de vista de su padre.
RequestFocus As Boolean

16 Views

280

Basic4Android Gua del principiante

Intenta ajustar el enfoque a esta vista.


Devuelve True si el foco se estableci.
SelectedIndex como Int
Obtiene o establece el ndice del elemento seleccionado. Devuelve -1 Si no hay ningn elemento est seleccionado.
SelectedItem As String [slo lectura]
Devuelve el valor del elemento seleccionado.
SendToBack
Cambia el orden z de este punto de vista y lo enva a la parte posterior.
SetBackgroundImage (mapa de bits como android.graphics.Bitmap)
SetLayout (izquierda como Int, Top como Int, Int ancho, altura como Int)
Cambia el tamao y posicin de la vista.
Tamao como Int [slo lectura]
Devuelve el nmero de elementos.
Etiqueta como objeto

Obtiene o establece el valor de la etiqueta. Este es un marcador de posicin que puede utilizar para almacenar datos adiciona
Top como Int
Visible como Boolean
Ancho como Int
Obtiene o establece el ancho de la vista.

16 Views

281

Basic4Android Gua del principiante

16.14 TabHost

TabHost es una vista que contiene varias pginas de ficha. Cada pgina contiene otras vistas de nio.
Consulte el tutorial de TabHost para obtener ms informacin.
Esto es un 'objeto de actividad', no se puede declarar bajo Sub Process_Globals.
Eventos:
TabChanged
Haga clic en
LongClick
Miembros:
AddTab (Title As String, LayoutFile As String)
AddTab2 (Title As String, vista como android.view.View)
AddTabWithIcon (Title As String, DefaultBitmap como android.graphics.Bitmap,
SelectedBitmap como android.graphics.Bitmap, LayoutFile As String)
AddTabWithIcon2 (Title As String, DefaultBitmap como android.graphics.Bitmap,
SelectedBitmap como android.graphics.Bitmap, ver como android.view.View)
Antecedentes como android.graphics.drawable.Drawable
BringToFront
Color como Int [slo escritura]
CurrentTab como Int
Habilitado como Boolean
Altura como Int

16 Views

282

Basic4Android Gua del principiante

Inicializar (EventName As String)


Invalidar
Invalidate2 (Rect como android.graphics.Rect)
Invalidate3 (izquierda como Int, Top como Int, Int, como inferior como Int)
IsInitialized As Boolean
Izquierda como Int
RemoveView
RequestFocus As Boolean
SendToBack
SetBackgroundImage (mapa de bits como android.graphics.Bitmap)
SetLayout (izquierda como Int, Top como Int, Int ancho, altura como Int)
TabCount como Int [slo lectura]
Etiqueta como objeto
Top como Int
Visible como Boolean
Ancho como Int
Descripcin de los miembros:
AddTab (Title As String, LayoutFile As String)
Agrega una pgina de ficha.
Ttulo - el ttulo de la pgina.
LayoutFile - un archivo de diseo que describe el diseo de pgina.
Ejemplo:
TabHost1.AddTab (\"Pgina 1\", \"page1.bal\")
AddTab2 (Title As String, vista como android.view.View)
Agrega una pgina de ficha.
Ttulo - el ttulo de la pgina.
Vista - el contenido de la pgina. Normalmente la vista debe ser un panel que contiene otras vistas.
AddTabWithIcon (Title As String, DefaultBitmap como android.graphics.Bitmap,
SelectedBitmap como android.graphics.Bitmap, LayoutFile As String)
Agrega una pgina de ficha. El ttulo de la ficha incluye un icono.
Ttulo - el ttulo de la pgina.
DefaultBitmap - el icono que se realizar cuando la pgina no est seleccionada.

16 Views

283

Basic4Android Gua del principiante

SelectedBitmap - el icono que se realizar cuando se selecciona la pgina.


LayoutFile - un archivo de diseo que describe el diseo de pgina.
Ejemplo:
Dim bmp1, bmp2 como mapa de bits
bmp1 = LoadBitmap (File.DirAssets, \"ic.png\")
BMP2 = LoadBitmap (File.DirAssets, \"ic_selected.png\")
TabHost1.AddTabWithIcon (\"Pgina 1\", bmp1, bmp2,\"tabpage1.bal\")
AddTabWithIcon2 (Title As String, DefaultBitmap como android.graphics.Bitmap,
SelectedBitmap como android.graphics.Bitmap, ver como android.view.View)
Agrega una pgina de ficha. El ttulo de la ficha incluye un icono.
Ttulo - el ttulo de la pgina.
DefaultBitmap - el icono que se realizar cuando la pgina no est seleccionada.
SelectedBitmap - el icono que se realizar cuando se selecciona la pgina.
Vista - el contenido de la pgina. Normalmente la vista debe ser un panel que contiene otras vistas.
Antecedentes como android.graphics.drawable.Drawable
Obtiene o establece el fondo dibujable.
BringToFront
Cambia el orden z de este punto de vista y lo trae al frente.
Color como Int [slo escritura]
Define el fondo de la vista para ser un ColorDrawable con el color especificado.
Si el fondo actual es de tipo GradientDrawable o ColorDrawable sern las esquinas redondas
mantenido.
CurrentTab como Int
Obtiene o establece la ficha actual.
Ejemplo:
TabHost1.CurrentTab = (TabHost1.CurrentTab + 1) Mod
TabHost1.TabCount ' a la ficha siguiente.
Habilitado como Boolean
Altura como Int
Inicializar (EventName As String)
Invalidar
Invalida la vista toda forzando la vista para dibujar a s mismo.
Dibujar slo suceder cuando el programa puede procesar los mensajes. Generalmente cuando termina
ejecutando el cdigo actual.
Invalidate2 (Rect como android.graphics.Rect)
Invalida el rectngulo dado.
Dibujar slo suceder cuando el programa puede procesar los mensajes. Generalmente cuando termina
ejecutando el cdigo actual.
Invalidate3 (izquierda como Int, Top como Int, Int, como inferior como Int)

16 Views

284

Basic4Android Gua del principiante

Invalida el rectngulo dado.


Dibujar slo suceder cuando el programa puede procesar los mensajes. Generalmente cuando termina
ejecutando el cdigo actual.
IsInitialized As Boolean
Izquierda como Int
RemoveView
Quita este punto de vista de su padre.
RequestFocus As Boolean
Intenta ajustar el enfoque a esta vista.
Devuelve True si el foco se estableci.
SendToBack
Cambia el orden z de este punto de vista y lo enva a la parte posterior.
SetBackgroundImage (mapa de bits como android.graphics.Bitmap)
SetLayout (izquierda como Int, Top como Int, Int ancho, altura como Int)
Cambia el tamao y posicin de la vista.
TabCount como Int [slo lectura]
Devuelve el nmero de pginas de fichas.
Etiqueta como objeto

Obtiene o establece el valor de la etiqueta. Este es un marcador de posicin que puede utilizar para almacenar datos adiciona
Top como Int
Visible como Boolean
Ancho como Int
Obtiene o establece el ancho de la vista.

16 Views

285

Basic4Android Gua del principiante

16.15 ToggleButton

Una vista de ToggleButton. Este punto de vista que es similar a un botn tiene dos modos: encendido y apagado.
Cuando el usuario presiona sobre ella, cambiar su modo.
Puede establecer el texto con las propiedades TextOn y TextOff.
Esto es un 'objeto de actividad', no se puede declarar bajo Sub Process_Globals.
Eventos:
CheckedChange (marcada As Boolean)
Miembros:
Antecedentes como android.graphics.drawable.Drawable
BringToFront
Comprobar As Boolean
Color como Int [slo escritura]
Habilitado como Boolean
Gravedad como Int
Altura como Int
Inicializar (EventName As String)
Invalidar
Invalidate2 (Rect como android.graphics.Rect)
Invalidate3 (izquierda como Int, Top como Int, Int, como inferior como Int)
IsInitialized As Boolean
Izquierda como Int
RemoveView
RequestFocus As Boolean
SendToBack
SetBackgroundImage (mapa de bits como android.graphics.Bitmap)

16 Views

286

Basic4Android Gua del principiante

SetLayout (izquierda como Int, Top como Int, Int ancho, altura como Int)
Etiqueta como objeto
TextColor como Int
TextOff As String
TextOn como cadena
TextSize como flotador
Top como Int
Tipografa como android.graphics.Typeface
Visible como Boolean
Ancho como Int
Descripcin de los miembros:
Antecedentes como android.graphics.drawable.Drawable
Obtiene o establece el fondo dibujable.
BringToFront
Cambia el orden z de este punto de vista y lo trae al frente.
Comprobar As Boolean
Color como Int [slo escritura]
Define el fondo de la vista para ser un ColorDrawable con el color especificado.
Si el fondo actual es de tipo GradientDrawable o ColorDrawable sern las esquinas redondas
mantenido.
Habilitado como Boolean
Gravedad como Int
Altura como Int
Inicializar (EventName As String)
Invalidar
Invalida la vista toda forzando la vista para dibujar a s mismo.
Dibujar slo suceder cuando el programa puede procesar los mensajes. Generalmente cuando termina
ejecutando el cdigo actual.
Invalidate2 (Rect como android.graphics.Rect)

16 Views

287

Basic4Android Gua del principiante

Invalida el rectngulo dado.


Dibujar slo suceder cuando el programa puede procesar los mensajes. Generalmente cuando termina
ejecutando el cdigo actual.
Invalidate3 (izquierda como Int, Top como Int, Int, como inferior como Int)
Invalida el rectngulo dado.
Dibujar slo suceder cuando el programa puede procesar los mensajes. Generalmente cuando termina
ejecutando el cdigo actual.
IsInitialized As Boolean
Izquierda como Int
RemoveView
Quita este punto de vista de su padre.
RequestFocus As Boolean
Intenta ajustar el enfoque a esta vista.
Devuelve True si el foco se estableci.
SendToBack
Cambia el orden z de este punto de vista y lo enva a la parte posterior.
SetBackgroundImage (mapa de bits como android.graphics.Bitmap)
SetLayout (izquierda como Int, Top como Int, Int ancho, altura como Int)
Cambia el tamao y posicin de la vista.
Etiqueta como objeto

Obtiene o establece el valor de la etiqueta. Este es un marcador de posicin que puede utilizar para almacenar datos adiciona
TextColor como Int
TextOff As String
Obtiene o establece el texto que aparecer en el modo OFF.
TextOn como cadena
Obtiene o establece el texto que aparecer en el modo ON.
TextSize como flotador
Top como Int
Tipografa como android.graphics.Typeface
Visible como Boolean
Ancho como Int
Obtiene o establece el ancho de la vista.

16 Views

288

Basic4Android Gua del principiante

16.16 Vista
Vista es un tipo especial de objeto. No puede crear nuevos objetos de la vista. Sin embargo todos los dems tipos de vista
puede asignarse a una variable de la vista.
Esto le permite acceder a las propiedades compartidas de todas las vistas.
Por ejemplo, este cdigo oculta todas las vistas de una actividad:
Para i = 0 To Activity.NumberOfViews - 1
Dim v como vista
v = Activity.GetView(i)
v.Visible = False
Siguiente
Esto es un 'objeto de actividad', no se puede declarar bajo Sub Process_Globals.
Eventos:
Haga clic en
LongClick
Miembros:
Antecedentes como android.graphics.drawable.Drawable
BringToFront
Color como Int [slo escritura]
Habilitado como Boolean
Altura como Int
Invalidar
Invalidate2 (Rect como android.graphics.Rect)
Invalidate3 (izquierda como Int, Top como Int, Int, como inferior como Int)
IsInitialized As Boolean
Izquierda como Int
RemoveView
RequestFocus As Boolean
SendToBack
SetBackgroundImage (mapa de bits como android.graphics.Bitmap)
SetLayout (izquierda como Int, Top como Int, Int ancho, altura como Int)
Etiqueta como objeto

16 Views

289

Basic4Android Gua del principiante

Top como Int


Visible como Boolean
Ancho como Int
Descripcin de los miembros:
Antecedentes como android.graphics.drawable.Drawable
Obtiene o establece el fondo dibujable.
BringToFront
Cambia el orden z de este punto de vista y lo trae al frente.
Color como Int [slo escritura]
Define el fondo de la vista para ser un ColorDrawable con el color especificado.
Si el fondo actual es de tipo GradientDrawable o ColorDrawable sern las esquinas redondas
mantenido.
Habilitado como Boolean
Altura como Int
Invalidar
Invalida la vista toda forzando la vista para dibujar a s mismo.
Dibujar slo suceder cuando el programa puede procesar los mensajes. Generalmente cuando termina
ejecutando el cdigo actual.
Invalidate2 (Rect como android.graphics.Rect)
Invalida el rectngulo dado.
Dibujar slo suceder cuando el programa puede procesar los mensajes. Generalmente cuando termina
ejecutando el cdigo actual.
Invalidate3 (izquierda como Int, Top como Int, Int, como inferior como Int)
Invalida el rectngulo dado.
Dibujar slo suceder cuando el programa puede procesar los mensajes. Generalmente cuando termina
ejecutando el cdigo actual.
IsInitialized As Boolean
Izquierda como Int
RemoveView
Quita este punto de vista de su padre.
RequestFocus As Boolean
Intenta ajustar el enfoque a esta vista.
Devuelve True si el foco se estableci.

16 Views

290

Basic4Android Gua del principiante

SendToBack
Cambia el orden z de este punto de vista y lo enva a la parte posterior.
SetBackgroundImage (mapa de bits como android.graphics.Bitmap)
SetLayout (izquierda como Int, Top como Int, Int ancho, altura como Int)
Cambia el tamao y posicin de la vista.
Etiqueta como objeto

Obtiene o establece el valor de la etiqueta. Este es un marcador de posicin que puede utilizar para almacenar datos adiciona
Top como Int
Visible como Boolean
Ancho como Int
Obtiene o establece el ancho de la vista.

16.17 WebView

La vista de vista Web utiliza el motor interno de WebKit para mostrar pginas Html.
La pgina que aparece puede ser una pgina en lnea cargada con LoadUrl o un Html cadena cargado con
LoadHtml.
Esto es un 'objeto de actividad', no se puede declarar bajo Sub Process_Globals.
Permisos:
Android.Permission.Internet
Eventos:
Ninguno
Miembros:
Atrs
Antecedentes como android.graphics.drawable.Drawable

16 Views

291

Basic4Android Gua del principiante

BringToFront
Color como Int [slo escritura]
Habilitado como Boolean
Avance
Altura como Int
Inicializar (EventName As String)
Invalidar
Invalidate2 (Rect como android.graphics.Rect)
Invalidate3 (izquierda como Int, Top como Int, Int, como inferior como Int)
IsInitialized As Boolean
JavaScriptEnabled As Boolean
Izquierda como Int
LoadHtml (Html como cadena)
LoadUrl (Url como cadena)
RemoveView
RequestFocus As Boolean
SendToBack
SetBackgroundImage (mapa de bits como android.graphics.Bitmap)
SetLayout (izquierda como Int, Top como Int, Int ancho, altura como Int)
Etiqueta como objeto
Top como Int
URL As String [slo lectura]
Visible como Boolean
Ancho como Int
ZoomEnabled As Boolean
Descripcin de los miembros:

16 Views

292

Basic4Android Gua del principiante

Atrs
Vuelve a la direccin Url anterior.
Antecedentes como android.graphics.drawable.Drawable
Obtiene o establece el fondo dibujable.
BringToFront
Cambia el orden z de este punto de vista y lo trae al frente.
Color como Int [slo escritura]
Define el fondo de la vista para ser un ColorDrawable con el color especificado.
Si el fondo actual es de tipo GradientDrawable o ColorDrawable sern las esquinas redondas
mantenido.
Habilitado como Boolean
Avance
Va hacia adelante a la siguiente direccin Url.
Altura como Int
Inicializar (EventName As String)
Invalidar
Invalida la vista toda forzando la vista para dibujar a s mismo.
Dibujar slo suceder cuando el programa puede procesar los mensajes. Generalmente cuando termina
ejecutando el cdigo actual.
Invalidate2 (Rect como android.graphics.Rect)
Invalida el rectngulo dado.
Dibujar slo suceder cuando el programa puede procesar los mensajes. Generalmente cuando termina
ejecutando el cdigo actual.
Invalidate3 (izquierda como Int, Top como Int, Int, como inferior como Int)
Invalida el rectngulo dado.
Dibujar slo suceder cuando el programa puede procesar los mensajes. Generalmente cuando termina
ejecutando el cdigo actual.
IsInitialized As Boolean
JavaScriptEnabled As Boolean
Obtiene o establece si JavaScript est habilitado.
JavaScript est habilitado de forma predeterminada.
Izquierda como Int
LoadHtml (Html como cadena)

16 Views

293

Basic4Android Gua del principiante

Carga el Html determinado.


Ejemplo:
WebView1.LoadHtml (\"<html><body> Hola mundo!<\/body><\/html>\")
Puede utilizar \"file:\/\/\/android_asset\" para acceder a los archivos con el gestor de archivos:
WebView1.LoadHtml (\"<html><body>< img
src='file:\/\/\/android_asset\/someimage.jpg'\/ ><\/body><\/html> \")
Tenga en cuenta que deben tener acceso a archivos aadidos con el gestor de archivos con un nombre de entubado inferior.
LoadUrl (Url como cadena)
Carga la direccin Url especificada.
Ejemplo:
WebView1.LoadUrl(\"http:\/\/www.google.com\")
RemoveView
Quita este punto de vista de su padre.
RequestFocus As Boolean
Intenta ajustar el enfoque a esta vista.
Devuelve True si el foco se estableci.
SendToBack
Cambia el orden z de este punto de vista y lo enva a la parte posterior.
SetBackgroundImage (mapa de bits como android.graphics.Bitmap)
SetLayout (izquierda como Int, Top como Int, Int ancho, altura como Int)
Cambia el tamao y posicin de la vista.
Etiqueta como objeto

Obtiene o establece el valor de la etiqueta. Este es un marcador de posicin que puede utilizar para almacenar datos adiciona
Top como Int
URL As String [slo lectura]
Devuelve la direccin Url actual.
Visible como Boolean
Ancho como Int
Obtiene o establece el ancho de la vista.
ZoomEnabled As Boolean
Obtiene o establece si est habilitada la caracterstica de zoom interno.
La funcin de zoom est activada por defecto.

17 Colecciones de

294

Basic4Android Gua del principiante

17 Colecciones
Lista de tipos:
Lista
Mapa

17.1 Lista

Las listas son similares a los arreglos dinmicos. Puede agregar y quitar elementos de una lista y cambiar su
tamao en consecuencia.
Una lista puede contener cualquier tipo de objeto. Sin embargo, si una lista es declarada como un objeto global del proceso n
contener objetos de actividad (como vistas).
Basic4android convierte automticamente matrices regulares en las listas. Cuando se espera un parmetro de la lista
se puede pasar una matriz en su lugar.
Por ejemplo:

Dim List1 como lista


List1.Initialize
List1.AddAll (matriz como Int (1, 2, 3, 4, 5))

Utilice el mtodo Get para obtener un elemento de la lista.


Las listas pueden ser guardadas y carga de archivos usando File.WriteList y File.ReadList.
Puede utilizar un bucle For para recorrer en iteracin todos los valores:
Para i = 0 To List1.Size - 1
Dim nmero como Int
nmero = List1.Get(i)
...
Siguiente

Eventos:
Ninguno
Miembros:
Agregar (elemento As Object)
AddAll (lista como lista)
AddAllAt (ndice como Int, lista como lista)
Claro
Obtener (ndice como Int) como objeto
IndexOf (elemento As Object) como Int
Inicializar
Initialize2 (matriz como lista)
InsertAt (ndice como Int, elemento As Object)

17 Colecciones de

295

Basic4Android Gua del principiante

IsInitialized As Boolean
RemoveAt (ndice como Int)
SET (ndice como Int, elemento As Object)
Tamao como Int [slo lectura]
Orden (ascendente As Boolean)
SortCaseInsensitive (ascendente As Boolean)
SortType (FieldName como cadena, ascendente As Boolean)
Descripcin de los miembros:
Agregar (elemento As Object)
Agrega un elemento al final de la lista.
AddAll (lista como lista)
Agrega todos los elementos en la coleccin especificada al final de la lista.
Tenga en cuenta que puede agregar una matriz directamente.
Ejemplo:
List.AddAll (matriz como String(\"value1\", \"value2\"))

AddAllAt (ndice como Int, lista como lista)


Agrega todos los elementos de la coleccin especificada, empezando por el ndice especificado.
Claro
Quita todos los elementos de la lista.
Obtener (ndice como Int) como objeto
Obtiene el elemento en el ndice especificado. No se quita el elemento de la lista.
IndexOf (elemento As Object) como Int
Devuelve el ndice del elemento especificado, o -1 Si no se encontr.
Inicializar
Inicializa una lista vaca.

17 Colecciones de

296

Basic4Android Gua del principiante

Initialize2 (matriz como lista)


Inicializa una lista con los valores indicados. Este mtodo se debe utilizar para convertir matrices a listas.
Tenga en cuenta que si pasa una lista a este mtodo, entonces ambos objetos compartirn la misma lista,
y si se pasa una matriz la lista ser de un tamao fijo. Lo que significa que ms tarde no se puede agregar o quitar
artculos.
Ejemplo:
Dim List1 como lista
List1.Initialize2 (matriz como Int(1,2,3,4,5))
Ejemplo:
Dim List1 como lista
Dim SomeArray(10) As String
' Llenar matriz...
List1.Initialize2(SomeArray)

InsertAt (ndice como Int, elemento As Object)

Inserta el elemento especificado en el ndice especificado. Como resultado todos los artculos con ndice ms grande entonce
se desplazan el ndice especificado.
IsInitialized As Boolean
RemoveAt (ndice como Int)
Quita el elemento en el ndice especificado.
SET (ndice como Int, elemento As Object)
Reemplaza el elemento actual en el ndice especificado con el nuevo elemento.
Tamao como Int [slo lectura]
Devuelve el nmero de elementos de la lista.
Orden (ascendente As Boolean)
Ordena la lista.
Todos los elementos deben ser nmeros o cadenas.
SortCaseInsensitive (ascendente As Boolean)
Lexicogrficamente ordena la lista, ignorando el caso de caracteres.
Todos los elementos deben ser nmeros o cadenas.

17 Colecciones de

297

Basic4Android Gua del principiante

SortType (FieldName como cadena, ascendente As Boolean)

Ordena una lista con elementos de usuario haban definido tipo. La lista est ordenada segn el campo especificado.
FieldName - el nombre del campo entre maysculas y minsculas que se utilizar para la clasificacin. Campo debe contener
o cadenas.
Ascendente - si desea ordenar ascendente o descendente.
Ejemplo:
Sub Process_Globals
Persona de tipo (nombre As String, Int edad)
End Sub
Sub Activity_Create (cumshot As Boolean)
Dim personas como lista
Persons.Initialize
Para i = 1 A 50
Dim p como persona
p.Name = \"Persona\"
p.Age = Rnd (0, 121)
Persons.Add(p)
Siguiente
Persons.SortType (\"edad\", True) ' ordenar la lista segn el campo de la edad.
Para i = 0 To Persons.Size - 1
Dim p como persona
p = Persons.Get(i)
Log(p)
Siguiente
End Sub

17 Colecciones de

298

Basic4Android Gua del principiante

17.2 Mapa
Una coleccin que contiene pares de claves y valores. Las claves son nicas. Lo que significa que si agrega
un par de clave\/valor (entrada) y la coleccin ya tiene una entrada con la misma clave, el anterior
se eliminar la entrada del mapa.
Obtencin de un elemento se realiza buscando su clave. Esto suele ser una operacin muy rpida o (1 () en comparacin con
a O(n) en una lista).
La clave debe ser una cadena o un nmero. El valor puede ser cualquier tipo de objeto.
Tenga en cuenta que esta aplicacin de mapa devuelve los elementos en el mismo orden como se agregaron.
Normalmente utilizar poner agregar elementos y Get o GetDefault para obtener los valores basados en la clave.
Si usted necesita recorrer en iteracin todos los elementos puede utilizar un bucle For como:
Para i = 0 To Map1.Size - 1
Dim clave, valor As String
Clave = Map1.GetKeyAt(i)
Valor = Map1.GetValueAt(i)
Siguiente

Similar a una lista, un mapa puede contener cualquier objeto, sin embargo, si es una variable global del proceso no
contener objetos de actividad (como vistas).
Los mapas son muy tiles para almacenar la configuracin de aplicaciones.
Puede guardar y cargar los mapas con File.WriteMap y File.ReadMap.
Eventos:
Ninguno
Miembros:
Claro
ContainsKey (clave como objeto) As Boolean
Get (clave como objeto) como objeto
GetDefault (clave como objeto, por defecto como objeto) como objeto
GetKeyAt (ndice como Int) como objeto
GetValueAt (ndice como Int) como objeto
Inicializar
IsInitialized As Boolean
Poner (clave como objeto, valor como objeto) como objeto
Quitar (clave como objeto) como objeto
Tamao como Int [slo lectura]

17 Colecciones de

299

Basic4Android Gua del principiante

Descripcin de los miembros:


Claro
Borra todos los elementos del mapa.
ContainsKey (clave como objeto) As Boolean
Comprueba si hay un elemento con la clave dada.
Ejemplo:
Si Map.ContainsKey(\"some key\") entonces...

Get (clave como objeto) como objeto


Devuelve el valor del elemento con la clave dada.
GetDefault (clave como objeto, por defecto como objeto) como objeto
Devuelve el valor del elemento con la clave dada. Si no existe ningn elemento es el valor predeterminado especificado
regres.
GetKeyAt (ndice como Int) como objeto
Devuelve la clave del elemento en el ndice especificado.
GetKeyAt y GetValueAt deben utilizarse para recorrer en iteracin todos los elementos.
Estos mtodos estn optimizados para recorrer en iteracin los elementos en orden ascendente.
Ejemplo:
Para i = 0 to Map.Size - 1
Registro (\"clave:\"
Registro (\"valor:\"
Siguiente

GetValueAt (ndice como Int) como objeto


Devuelve el valor del elemento en el ndice especificado.
GetKeyAt y GetValueAt deben utilizarse para recorrer en iteracin todos los elementos.
Estos mtodos estn optimizados para recorrer en iteracin los elementos en orden ascendente.
Ejemplo:
Para i = 0 to Map.Size - 1
Registro (\"clave:\"
Registro (\"valor:\"
Siguiente

Inicializar
Inicializa el objeto.
Ejemplo:
Dim Map1 As mapa
Map1.Initialize

IsInitialized As Boolean

17 Colecciones de

300

Basic4Android Gua del principiante

Poner (clave como objeto, valor como objeto) como objeto


Pone un par de clave y valor en el mapa, sobrescribiendo el elemento anterior con esta clave (si tal existe).
Devuelve el elemento anterior con esta tecla o null si no haba ningn elemento.
Tenga en cuenta que si utiliza cadenas como las teclas de las teclas distinguen maysculas de minsculas.
Ejemplo:
Map1.put (\"tecla\", \"Valor\")

Quitar (clave como objeto) como objeto


Quita el elemento con la clave dada, si tal existe.
Devuelve el elemento eliminado o null si no se ha encontrado ningn elemento coincidente.
Tamao como Int [slo lectura]
Devuelve el nmero de elementos almacenados en el mapa.

18 VB6 versus B4A

301

Basic4Android Gua del principiante

18 VB6 versus B4A


Escrito por: nfordbscndrd

http:\/\/www.Basic4ppc.com\/Forum\/Members\/nfordbscndrd.html

UBU
B4A
===
===
controles
Vistas (botn, edittext, etiqueta, etc.).
En la ventana de cdigo de VB6, la lista desplegable izquierda superior contiene todos
los controles que has colocado en el formulario actual y la lista de la derecha
contiene todos los eventos para cada control. El equivalente en B4A puede
se encuentra haciendo clic en diseador - herramientas - generar miembros. Vez
han creado Subs en el programa de codificacin de la ventana, los ficha \"mdulos\"
en el lado derecho aparecer una lista cada uno de los Subs.
En B4A, empezar escribiendo \"Sub [viewName]\" seguido de un espacio y
Siga las instrucciones, pulsando Enter despus de cada seleccin hasta B4A
termina con \"EventName\" destacada. Esto es donde usted escribira en
el nombre de Sub.
Dim\/ReDim:
--------Dim Array(n)
Dim Array(n+1)
Mientras que \"n\" es el ltimo nmero de ndice en VB6, que indica el nmero
de elementos de la matriz cuando se utiliza en B4A. Por ejemplo, para atenuar una matriz
con 0-32 elementos en VB6, diras Dim A(32), mientras que para convertir
Esto para B4A, necesita cambiar a Dim A(33), sin embargo, es ndice # 33
nunca usado (hacerlo as podra ocasionar un error fuera de rango).
ReDim Array()

Dim Array(n+1)--para borrar una matriz, slo Dim lo nuevo.

[Dim un Int: Dim b as Boolean]


Si no es b entonces...Si Not(b) entonces...
Si b entonces...
mismo
Si b = True Then
mismo
Si entonces...
Si un > 0 Then...
B4A no tratar cualquier valor distinto de cero como True como VB6.
un = un + b
Si b = True entonces a = a - 1
Valor de booleano no puede utilizarse en una funcin matemtica en B4A.
Global Const x = 1

B4A no tiene una funcin Global Const.


En Sub Globals, se puede decir
Dim x como Int: x = 1
pero x no es una constante (su valor puede ser cambiado).

Bucles, If-Then, seleccione caso:


--------------------------Hacer [hasta\/tiempo] mismo
Bucle [hasta\/tiempo] Loop [hasta que\/mientras no permitido.]
Para - siguiente
mismo
Para i... - siguiente me la variable del bucle (i) no es permitir con siguiente.
Exit Do para
Salida
Si - entonces - Else excepto ElseIf del VB mismo, es \"Else If\" en B4A; Ditto EndIf
--Para i = 1 a 6
Si i = 4 entonces
... cdigo...
End If
Siguiente

Continuar [salta a la siguiente en bucle para el siguiente]


Para i = 1 a 6
Si i = 4 a continuacin,
... cdigo...
...
Siguiente

Seleccione caso [expr] seleccionar [valor]


Colores:
------

18 VB6 versus B4A


L1.BackColor =
vbRed
L1.ForeColor =
vbBlack
Llamar a un sub:
------------SubName x, y
Sub SubName()
ser
usted

Funcin FName()
Como [var.type]

Exit Sub
Exit Function
General:
------DoEvents

mientras
cargado
Agraham
ser
hardware

60W

Basic4Android Gua del principiante

L1.Color = Colors.Red
L1.TextColor = Colors.Black

SubName (x, y)
Sub SubName() como Int\/cadena\/etc--no una variable Global
un parmetro, por lo que dicen reproductor es una variable Global,
no se puede decir: PlayCard(player). En su lugar, usted tiene que decir:
i = reproductor: PlayCard(i)

Sub FName() como [var.type]


En B4A, cualquier Sub puede utilizarse como una funcin mediante la adici
tipo de variable tales como
Sub CheckX (x como Int) As Boolean
.. .optional cdigo...
Si x = [valor deseado], a continuacin, devuelve True
.. .optional cdigo...
End Sub
Si no se da retorno, luego cero\/False \"\" es devuelto.
El cdigo de llamada no tiene que hacer referencia a la devolucin
valor, por lo que si bien \"si CheckX(x) = True...\" es vlida,
es tan slo \"CheckX(x)\"
Retorno
Devolver [valor]

mismo, excepto Erel dice:


\"Llamar a DoEvents en un bucle consume muchos recursos y
no permite el sistema procesar todos los mensajes de espera
correctamente\". Esto fue en respuesta a mi sealando que
en un bucle Do con DoEvents en ella, no poda ser vista Web
o si cargado, hara clic en proceso no un hipervnculo. Y
dice: \"el bucle es mala prctica en dispositivos mviles. La CPU
ejecucin de cdigo y usando la energa de la batera como constantemente la
cdigo nunca pondremos el bucle inactivo OS donde el
medidas de ahorro de energa se invoca\".

Format()

NumberFormat

InputBox($)

InputList (elementos como CheckedItem de la lista, el ttulo, como Int) como


Muestra la lista de opciones con los botones de radio. ndice de devoluc
CheckedItem es el valor predeterminado.
InputMultiList (elementos como lista, ttulo) como lista
Usere puede seleccionar varios elementos a travs de las casillas de ve
Devuelve la lista con los ndices de cuadros comprobados.

MsgBox \"texto\"
i=MsgBox()
Int

MsgBox (\"texto\", \"ttulo\")


MsgBox2 (mensaje, ttulo, positivo, cancelar, negativo, icono) como
Muestra tres botones con texto que se mostrar para los botones
(Positivo, cancelar, negativo)
Icono se mostrar cerca el ttulo y se especifica como:
LoadBitmap (File.DirAssets, \".gif [filename]\")

18 VB6 versus B4A


---

303

Basic4Android Gua del principiante

ToastMessageShow (texto, b) [donde b = True para larga duracin]

RND es < 1

RND (min, max) es entero > = min a < mx.

Round(n)

mismo, o Round2 (n, x) donde x = nmero de lugares decimales

i = Val(string)

Si IsNumber(string) entonces i = string Else I = 0-Un intento de uso i = string \"lanza una excepcin\", si el

la cadena es

no nmeros.

control.SetFocus

vista.RequestFocus

n \/ 0: error

n \/ 0 = 2147483647--B4A no \"una excepcin\" para


Divisin por 0, pero volver a 2147483647 no importa
Cul es el valor de \"n\".

x = Shell(\"...\")

Vea la \"Intencin\". Esto no es un reemplazo completo, sino que permite


cdigo como el siguiente del Foro B4A (por Erel):
Dim pi como PhoneIntents
StartActivity
(pi.OpenBrowser(\"file:\/\/\/sdcard\/yourfile.html\"))
t = Timer
1-70

t = DateTime.Now ' las garrapatas son nmeros de milisegundos desde 1 -

TabIndex:
-------En VB6, TabIndex puede configurarse para controlar el orden en que los controles obtienen foco
Cuando se presiona Tab. Segn Erel, en B4A:
\"Android maneja la secuencia segn su posicin. Puede establecer
EditText.ForceDone = True en todas sus EditTexts. Luego coger la
Evento de EditText_EnterPressed y establecer explcitamente el foco al siguiente
Ver (con EditText.RequestFocus).\"
Configuracin de transparencia de la etiqueta:
-------------------------Propiedades - estilo espalda
Diseador - dibujable - Alpha
Constantes:
--------""
vbCr
vbCrLf

Quote = Chr$(34)
CRLF = Chr$(13)
ninguno

Cadena miembros:
---------------VB6 utiliza un puntero de posicin de caracteres comenzando con 1.
B4A utiliza un puntero de ndice de caracteres comenzando con 0.
MID$
MID$
MID$
MID$
MID$

UBU
(\"abcde\",
(\"abcde\",
(\"abcde\",
(\"abcde\",
(\"abcde\",

1,
2,
3,
4,
5,

B4A
1) = \"a\" = ndice 0--de la matriz de la letra \"a\" = \"abcde\".CharAt(0)
1) = \"b\" = ndice de la matriz de carta 1
1) = \"c\" = ndice de matriz Carta 2
1) = \"d\" = ndice de matriz carta 3
1) = \"e\" = ndice de matriz carta 4

UBU
B4A
===
===
$ MID (texto, n, 1)
texto.CharAt(n-1)
$ MID (texto, n)
texto.SubString(n-1)
MID$ (texto, n, x) [x = longitud querido] texto.SubString2 (n-1, n + x-1) [n + x-1 = end
posicin]
MID$ (texto, n, x) = text2
texto = texto.SubString2 (0, n-2)

18 VB6 versus B4A

304

Basic4Android Gua del principiante

Text2.SubString2 (0, x-1)


texto.Subcadena (n-1 + z) donde...
z = Min (x, text2.length)
Left$ (texto, n) [chars n=num.of.] texto.SubString2(0, n)
Right$ (texto, n)
texto.SubString (texto.Longitud - n + 1)
Si un$ = $ b...
Si a.CompareTo(b)...
Si la derecha$ (texto, n) = text2...
Si texto.EndsWith(text2)...
Si se deja$ (texto, n) = text2...
Si texto.StartsWith(text2)...
Si Lcase$(text) = Lcase$(text2)... Si texto.EqualsIgnoreCase(text2)...
x = Len(text)
x = texto.Longitud
texto = Replace (texto, str, str2)
texto.Reemplazar (str, str2)
LCase(Text)
texto.ToLowerCase
UCase(Text)
texto.ToUpperCase
Trim(Text)
texto.Trim
(no LTrim o RTrim en B4A)
INSTR (texto, string)
texto.IndexOf(string)
INSTR (int, texto, string)
texto.IndexOf2(string, int)
Devuelve-1 Si no se encuentra.
ndice de devoluciones pers, no posicin.
Comienza la bsqueda en \"int\".
Si Lcase$(x) = Lcase$(y)...
Si x.EqualsIgnoreCase(y)...
texto = Left$ (texto, n)
texto.Insertar (n, s)
Right$ (texto, y)
ASC(s) [donde s = carcter]
mismo
Captura de errores:
-------------VB6:
===
Sub SomeSub
En [Local] Error GoTo ErrorTrap
.. .algunos cdigo...
On Error GoTo 0 [fin opcional en la captura de error]
.. .optional cdigo adicional...
Exit Sub [para evitar la ejecucin de cdigo de ErrorTrap]
ErrorTrap:
.. .optional cdigo de correccin de errores...
Curriculum Vitae [opcional: \"Resume Next\" o \"Resume [etiqueta de lnea]\".
End Sub
B4A:
===
Sub SomeSub
Trate de
.. .algunos cdigo...
Capturas [slo se ejecuta si error anterior]
Log(LastException) [opcional]
.. .optional cdigo de correccin de errores...
End Try
.. .optional cdigo adicional...
End Sub
Con B4A, si obtiene un error atrapado en medio de una subrutina grande, usted
puede
NO hacer una correccin y reanudar dentro del cdigo que se ejecute. Slo el
Cdigo
ejecutado en \"Catch\". Parece que Try-Catch-End Try de uso
principalmente
durante el desarrollo.
Try-Catch en lugar de GoTo:
-------------------------Try-Catch puede utilizarse como un sustituto de GoTo [etiqueta de lnea] para el avance, pero no
Salta hacia atrs. No puede utilizarse para reemplazar GoSub, para el que no tiene ningn B4A
equivalente.

18 VB6 versus B4A

305

Basic4Android Gua del principiante

Iniciar el cdigo con \"Try\" y sustituir la [etiqueta de lnea] con \"Catch\".


Sustituir \"GoTo [etiqueta de lnea]\" cdigo que crear una excepcin, que
causas
un salto a la \"Captura\", como OpenInput (\"mal camino\", \"bad filename\").
\"Ventana inmediato\" vs \"Registros\" ficha
-------------------------------Comentarios, valores de variables, etc., pueden mostrarse en inmediato de VB6
Ventana introduciendo en el cdigo \"Debug.Print...\".
En el entorno de B4A, la ficha de registros en el lado derecho del IDE es una
forma de mostrar los valores de variables, etc., mientras se ejecuta el cdigo.
VB6 y (ahora) B4A permiten single-paso a paso a travs del cdigo mientras
est funcionando y ver los valores de las variables. VB6 tambin permite cambiar
el valor de las variables, para cambiar el cdigo, saltar a otras lneas de
la lnea actual, etc. Porque B4A se ejecuta en un PC mientras la aplicacin se ejecuta en
un dispositivo separado, B4A es actualmente incapaz de duplicar todos estos
Caractersticas de depuracin de VB6.

19 FAQ DE

306

Basic4Android Gua del principiante

19 PREGUNTAS FRECUENTES
Algunos de los captulos a continuacin han sido recogidos desde el Foro.

19.1 Mensaje \"Por favor Guardar proyecto primero\"


Al intentar compilar o abra el diseador veo un mensaje diciendo: \"Por favor guardar cdigo fuente primero.\"
Un nuevo proyecto no tiene una carpeta que contiene hasta que primero est guardado.
Guardar el proyecto y este error desaparecer.

19.2 Mensaje \"Le falta una referencia de la biblioteca\"


Compilador dice: \"falta una referencia de la biblioteca?\".
Vaya a la ficha de bibliotecas en el panel derecho y compruebe la
bibliotecas requeridas.
Si no sabes qu biblioteca un tipo de objeto especfico
pertenece a, puede ir a la
documentacin pgina o
la lista de bibliotecas adicionales.

En la parte inferior de esta pgina hay una larga lista con todos los
tipos de objetos.

Pulsando sobre cualquier tipo le llevar a la biblioteca de derecha.


Tenga en cuenta que la versin de prueba no admite bibliotecas. Slo
la versin completa.

19 FAQ DE

307

Basic4Android Gua del principiante

19.3 Cmo cargar \/ actualizacin de una biblioteca


Consulte el captulo de las bibliotecas en la gua.
Se muestra una lista de las bibliotecas oficiales y adicionales con enlaces a los hilos del Foro pertinente en el
B4A Wiki aqu: lista de bibliotecas
Para cargar o actualizar una biblioteca siga estos pasos:
Descargue el archivo zip de biblioteca en algn lugar.
Descomprimirlo.
Copie los archivos xxx.jar y xxx.xml a la
o Carpeta de la biblioteca de B4A para una biblioteca estndar de B4A
o Carpeta de bibliotecas adicionales para una librera adicional.
Reinicie el IDE y compruebe la biblioteca en la lista de la ficha de Lib para seleccionarlo.

ArgumentException:
ArgumentException:
The incoming
The incoming
tokentoken
has expired.
has expired.
Get Get
a new
a new
access
access
token
token
fro

ArgumentException: The incoming token has expired. Get a new access token from the Authorization Se

ArgumentException: The incoming token has expired. Get a new access token from the Authorization Server. : ID
Para poder tener acceso a cualquier vista por su nombre, usted debe Dim en el Globals Sub
rutina.
Vistas que se aadieron
en el diseador en un archivo de diseo no debe ser inicializado!
o Dim slo la vista en la rutina de Sub Globals.
Sub Globals
Dim lblTitle como etiqueta

y nada ms.

por cdigo debe ser initilized.


o Dim la vista en la rutina de Sub Globals.
Sub Globals
Dim lblTitle como etiqueta

o Inicializarla y agregarlo a la actividad (o un Panel) en la rutina Activity_Create.


Sub Activity_Create (cumshot As Boolean)
Si entonces cumshot
lblTitle.Initialize(\"\")
Activity.AddView (lblTitle, 10dip, 10dip, 200dip, 50dip)
End If

Lista \/ mapa.
Lista y mapa objetos deben inicializarse antes de que se pueden utilizar.

19 FAQ DE

308

Basic4Android Gua del principiante

19.5 Dividir una lnea larga en dos o ms lneas


Para dividir una larga lnea en dos o ms lneas pone un carcter de subrayado, separados por un espacio en blanco
carcter, al final de la lnea. Mire el ejemplo en el captulo siguiente.
ANSW = Msgbox2 (\"desea salir del programa\", \"A T T E N T I O N\", \"S\", \"\", \"No\", Null)

Se convierte en:
ANSW = Msgbox2 (\"desea salir del programa\", _
\"A T T E N T I N\", \"S\", \"\", \"No\", Null)

19.6 Evitar cerrar una aplicacin \/ captura cdigos de tecla como Back \/ men
Esto puede hacerse por interceptar el evento Activity_KeyPress.
Sub Activity_KeyPress (KeyCode como Int) As Boolean ' devuelve True para consumir el
evento
Dim Answ como Int
Si KeyCode = KeyCodes.KEYCODE_BACK Then
ANSW = Msgbox2 (\"desea salir del programa?\", _
\"A T T E N T I N\", \"S\", \"\", \"No\", Null)
Si Answ = DialogResponse.NEGATIVE Then
Return True
End If
End If
Return False
End Sub

Comprobamos si el el KeyCode equivale a la tecla atrs.


Si s, le pedimos al usuario si realmente desea salir del programa.
o Si 'No' volvemos cierto que consumir el evento.
o De lo contrario nos devuelven False para transmitir el evento para el sistema operativo.
TH

Slo como recordatorio, el guin bajo al final de la lnea 5

ANSW = Msgbox2 (\"desea salir del programa?\", _

significa divide la lnea y pone el resto en la lnea siguiente.

ATENCIN:
La tecla de inicio no puede ser atrapada en el Activity_KeyPress rutina de evento!

19 FAQ DE

309

Basic4Android Gua del principiante

19.7 Eventos no deseados como clic, tacto u otros


Propuesto por alfcen:
Supongamos que tiene una actividad que contiene varios botones con eventos de clic.
Ahora, agregar un Panel sobre la actividad, cubriendo as los botones. Como toque en el
panel que se ver que fue despedido un evento click de un botn en la actividad.
Esto no es un bug de B4A, por el contrario, puede ser bastante til.
Sin embargo, si esto no es buscado, simplemente aada:
Sub Panel1_Click
' no hacer nada aqu o colocar cdigo a ser ejecutado a golpecitos en el panel
End Sub

19,8 Agregar un elemento de men


Tambin debe tener una mirada a los programas de ejemplo \/ interfaces de usuario.
Esto se hace con los mtodos AddMenuItem o AddMenuItem2.
Una vez que se agrega un elemento de men puede ni modificar ni quitar o deshabilitar.
Activity.AddMenuItem (\"Ttulo\", \"EventName\")
Activity.AddMenuItem (\"Ttulo\", \"EventName\", imagen)

Ejemplos:
Activity.AddMenuItem (\"Load\", \"mnuLoad\")
Activity.AddMenuItem (\"Guardar\", \"mnuSave\", imagen)

o
Activity.AddMenuItem (\"Load\", \"mnuLoad\", LoadBitmap (File.DirAssets, \"Load.png\"))
Activity.AddMenuItem (\"Guardar\", \"mnuSave\", LoadBitmap (File.DirAssets, \"Save.png\"))

19 FAQ DE

310

Basic4Android Gua del principiante

19.9 Cmo elimino una vista con el diseador


Para eliminar una vista con el diseador debe:
Seleccione la vista para quitar el dispositivo, el emulador o en el diseador.
Retirar, en el men que herramientas haga clic en quitar vista seleccionada.

Mensaje 19.10 proceso tiene tiempo de espera


Si a menudo recibe este mensaje \"El proceso tiene tiempo de espera\" puede cambiar su valor:
En el IDE men Herramientas \/ Opciones de IDE haga clic en configurar el tiempo de proceso.

Y cambiar el valor:

19 FAQ DE

311

Basic4Android Gua del principiante

19.11 Obteniendo una imagen de la Galera


Siguiendo el cdigo le permite cargar una imagen de la Galera.
Sub Process_Globals
Dim selector como ContentChooser
End Sub
Sub Globals
End Sub
Sub Activity_Create (cumshot As Boolean)
Si entonces cumshot
selector de campos.Initialize(\"Chooser\")
End If
selector de campos.Mostrar (\"imagen \/ *\", \"Seleccionar imagen\")
End Sub
Sub chooser_Result (xito As Boolean, Dir As String FileName As String)
Si xito entonces
Dim bmp como mapa de bits
BMP.Inicializar (Dir, nombre de archivo)
Activity.SetBackgroundImage(BMP)
Else
ToastMessageShow (\"ninguna imagen seleccionada\", True)
End If
End Sub

19.12 Cmo eliminar archivos de x.bal u otros archivos de un proyecto


Para eliminar archivos de proyecto debe utilizar los archivos de la ficha en la esquina inferior derecha del IDE.

Seleccione los archivos que desea eliminar.

Haga clic en
y confirmar para eliminar los archivos.
Si elimina los archivos en la carpeta, recibir un mensaje para los archivos que faltan la siguiente
tiempo de que iniciar el proyecto.

19 FAQ DE

312

Basic4Android Gua del principiante

19.13 Bloquear una orientacin de la pantalla


Para bloquear la orientacin de retrato o paisaje.
Este es vlido para la actividad actual.
Puede definir orientaciones de pantalla diferentes para diferentes actividades.

En el IDE, men:
Proyecto orientaciones soportan:

Ambos
Retrato
Paisaje

Tambin se puede hacer por cdigo con


SetScreenOrientation desde la biblioteca de telfono:

Paisaje

Retrato

Ambos

Phone1.SetScreenOrientation(0)
Phone1.SetScreenOrientation(1)
Phone1.SetScreenOrientation(-1)

19 FAQ DE

313

Basic4Android Gua del principiante

19.14 Segunda actividad de cierre de


Desde el Foro:
En relacin con el tutorial de 'twoactivities' por Erel, not cuando se presiona el botn posterior de
la principal actividad, Activity2 luego mostr nuevamente.
En el cdigo de Activity2 despusStartActivity(Main)
de
Aadir
Activity.Finish.
StartActivity(Main)
Activity.Finish

19.15 Tomar una captura de pantalla programaticaly


Usted puede tomar una captura de pantalla del dispositivo o el emulador con el siguiente cdigo:
Las necesidades de la biblioteca de reflexin.
Sub btnScrShot_LongClick
' Tomar una captura de pantalla.
Dim Obj1, Obj2 como Reflector
Dim bmp como mapa de bits
Dim c como lienzo
Ahora, la Dim I As Long
Dim dt As String
DateTime.DateFormat = \"yyMMddHHmmss\"
Ahora = DateTime.now
DT = DateTime.Date(now) ' por ejemplo: \"110812150355\" es Aug.12, 2011, 15:03:55
Obj1.Target = Obj1.GetActivityBA
Obj1.Target = Obj1.GetField(\"vg\")
BMP.InitializeMutable (Activity.Width, Activity.Height)
c.Initialize2(BMP)
Dim args(1) As Object
Dim types(1) As String
Obj2.Target = c
Obj2.Target = Obj2.GetField(\"canvas\")
args(0) = Obj2.Target
Types(0) = \"android.graphics.Canvas\"
Obj1.RunMethod4 (\"dibujar\", args, tipos)
Dim Out As OutputStream
A = File.OpenOutput (File.DirRootExternal, dt
BMP.WriteToStream (Out, 100, \"PNG\")
Out.Close
End Sub

19.16 Despus de compilar, donde estn los archivos


El compilador genera un archivo *.apk que se encuentra en la carpeta de 'Objetos'. Cuando es el IDE
conectado a un dispositivo o en el emulador el archivo apk es automticamente cargado a ella.
El nombre del archivo apk es la 'etiqueta de aplicacin' especificada cuando se ha definido el proyecto.
Ejemplo: GPSExample.apk
Si ha marcado 'Incluir informacin de depuracin' y depurador de acople en el IDE se obtendr un
archivo apk con el sufijo _DEBUG.
Ejemplo: GPSExample_DEBUG.apk
Si desea distribuir la aplicacin debe desactivar estas dos opciones.

19 FAQ DE

314

Basic4Android Gua del principiante

19.17 Ejecutar una aplicacin desde otra


Respuesta de Erels a la pregunta:
Puede iniciar cualquier aplicacin enviando la intencin correcta.
La forma ms sencilla de ver la intencin requerida es mirar los registros sin filtrar al iniciar manualmente
la aplicacin.
El cdigo siguiente muestra cmo ejecutar una aplicacin desde otro.
El PackageManager es un objeto en la biblioteca de telfono.
Se necesita el nombre del paquete exacto!
Dim pm como PackageManager
Dim en como intencin
en.Inicializar (\"\", \"\")
in = pm.GetApplicationIntent
En caso.Entonces IsInitialized
StartActivity(in)
End If

19,18 Cmo pasar una matriz a un Sub


Es posible pasar matrices, matrices multidimensionales tambin, a un sub.
Ejemplo de cdigo.

Dim (1), two(1,2), three(1,2,3) As String

Sub Test(a() As String, b(,) As String, c(,,) As String) como String(,)


...
End Sub
'
'
Prueba (uno, dos, tres)

Es necesario especificar el rango (nmero de dimensiones) en la definicin de Sub con ','.


Si desea que el Sub para devolver una matriz tambin debe speccify.
Sub Test(a() As String, b(,) As String, c(,,) As String) As String

Devuelve una cadena nica.

Sub Test(a() As String, b(,) As String, c(,,) As String) como String()

Devuelve una matriz de cadenas rango.

Sub Test(a() As String, b(,) As String, c(,,) As String) como String(,)

Devuelve una matriz de cadenas de rango dos.

19 FAQ DE

315

Basic4Android Gua del principiante

19.19 Obtencin de idioma y pas de dispositivo


Puede obtener el actual idioma y pas desde un dispositivo con el siguiente cdigo.
Sub Activity_Create (cumshot As Boolean)
Log(GetDefaultLanguage)
End Sub
Sub GetDefaultLanguage
Dim r como Reflector
r.Target = r.RunStaticMethod (\"java.util.Locale\", \"getDefault\", Null, Null)
Volver a r.RunMethod(\"getDisplayName\")
End Sub
GetDefaultLanguage Devuelve una cadena con el idioma y el pas.

Necesidades de la biblioteca de reflexin (disponible slo para los usuarios que compraron Basic4Android)!
Ejemplos:

Ingls (Estados Unidos)


Deutsch (sterreich)
Franais (Suisse)

19.20 Donde est el archivo apk


Donde est el archivo apk:
El archivo apk se encuentra en la carpeta objetos de su proyecto.

19.21 Por qu es mi result.apk de nombre de archivo apk


El nombre de archivo es el mismo que el nombre de archivo de proyecto principal pero en vez del sufijo .b4a tiene la .apk
sufijo.
Si se introducen caracteres no autorizados, como un espacio, el nombre del archivo apk ser result.apk.
El nombre de apk no tiene ninguna importancia, el nombre que se muestra es el nombre de etiqueta que le dio cuando cre
el proyecto.

19 FAQ DE

316

Basic4Android Gua del principiante

19,22 Por qu es mi xxx_DEBUG.apk de nombre de archivo apk


Distribuir un programa que debe seleccionar en el IDE, en la lista de Drpodown,
Liberacin.

19.23 Seleccione True \/ casos truco


La pregunta: sera bueno poder utilizar Select Case utilizando el 'mayor que' y 'menos'
los operadores <>. Limpiador de cdigo que 'si' hace 'otra cosa' y 'end if' etc..
Este truco hace:
i = 10
Seleccione True
Caso (me < 9)
Log(\"false\")
Caso (i = 10)
Log(\"true\")
End Select

19.24 Llenar una matriz con nmeros aleatorios sin repeticiones


Este fragmento de cdigo de Erel se basa en el algoritmo de shuffle Fisher-Yates.
Sub Globals
Dim numbers(10) como Int
End Sub
Sub Activity_Create (cumshot As Boolean)
' poner nmeros 1-10 en la matriz
Para i = 0 A 9
Numbers(i) = i + 1
Siguiente
ShuffleArray(numbers)
Para i = 0 A 9
Log(Numbers(i)) ' imprimir los nmeros en el registro
Siguiente
End Sub
Sub ShuffleArray(arr() como Int)
Dim I As Int
Para i = popularizadoLongitud - paso 1 A 0 -1
Dim j, k como Int
j = Rnd (0, + 1)
k = arr(j)
ARR(j) = arr(i)
ARR(i) = k
Siguiente
End Sub

19 FAQ DE

317

Basic4Android Gua del principiante

19.25 Detectar la orientacin de la pantalla


El siguiente cdigo detecta la pantalla orientaion, comparando si el ancho de la actividad es mayor que la
altura de la actividad, a continuacin, la orientacin es \"paisaje\" de lo contrario es \"portrait\".
Sub Globals
Dim orientacin como cadena
End Sub
Sub Activity_Create (cumshot As Boolean)
Si Activity.Width > Activity.Height entonces
Orientacin = \"Paisaje\"
Else
Orientacin = \"Claro\"
End If
End Sub

19.26 Algunas funciones no funcionan en Activity_Pause


No se admiten todas las funciones detener el programa en elActivity_Pause rutina.
Como:
MsgBox
Cuadros de mensaje
Cuadros
de
dilogo
modales
InputDialog, etc. de FileDialog.

Cuadros de dilogo personalizados


Puntos de interrupcin
Trabajo de registro y ToasMessage.

19.27 Llamando la calculadora interna


La siguiente subrutina llama la calculadora interna.
Calculadora de Sub
Dim I As intenciones
i.Initialize (\"\", \"\")
i.SetComponent (\"com.android.calculator2 \/.Calculadora\")
Trate de
StartActivity(i)
Captura
ToastMessageShow (\"Calculadora app no encontrado.\", True)
End Try
End Sub

19 FAQ DE

318

Basic4Android Gua del principiante

19,28 Obtenga la Alpha \/ rojo \/ verde \/ azul


Sub Activity_Create (cumshot As Boolean)
Dim argb() como Int
ARGB = GetARGB(Colors.Transparent)
Registro (\"A =\"
Registro (\"R =\"
Registro (\"G =\"
Registro (\"B =\"
End Sub
Sub GetARGB (Int Color) como Int()
Dim res(4) como Int
res(0) = Bit.UnsignedShiftRight (Bit.And (Color, 0xff000000), 24)
res(1) = Bit.UnsignedShiftRight (Bit.And (Color, 0xff0000), 16)
res(2) = Bit.UnsignedShiftRight (Bit.And (Color, 0xff00), 8)
res(3) = Bit.And (Color, 0xff)
Res de retorno
End Sub
Intde
En lneaSub GetARGB (Int Color) como Int() el () Despus
son necesarios porque el retorno
valor es una matriz.

19 Glosario de

319

Basic4Android Gua del principiante

Glosario 20
Android
Android es una pila de software para dispositivos mviles que incluye un sistema operativo,
aplicaciones de middleware y clave. Google Inc. adquiri, en 2005, Android Inc., la compaa que
inicialmente se desarroll el software.
Java
Java es un lenguaje de programacin originalmente desarrollado por James Gosling en el sol
Microsystems (que ahora es una subsidiaria de Oracle Corporation) y lanzado en 1995 como un ncleo
componente de la plataforma Java de Sun Microsystems. El idioma deriva gran parte de su sintaxis de c
y C++, pero tiene un modelo de objetos ms simple y menos instalaciones de bajo nivel.
Actividad
Una actividad es algo nico y centrado que el usuario puede hacer. Casi todas las actividades
interactuar con el usuario, por lo que la clase de actividad se encarga de crear una ventana para usted en que usted
puede colocar su interfaz de usuario.
Vista
Proporciona clases que exponen clases de interfaz de usuario bsica que manejan el diseo de la pantalla y
interaccin con el usuario. Ejemplos: Etiqueta, Panel, botn, EditText etc..

Vous aimerez peut-être aussi