|     Inicio    |   |         |  |   FOROS      |  |      |      
   Elastix - VoIP B4A (Basic4Android) App inventor 2 PHP - MySQL
  Estación meteorológica B4J (Basic4Java) ADB Shell - Android Arduino
   AutoIt (Programación) Visual Basic Script (VBS) FireBase (BD autoactualizable) NodeMCU como Arduino
  Teleco - Emisora de A.M. Visual Basic Cosas de Windows Webs interesantes
Translate:
Búsqueda en este sitio:


Nuevo concurso para España, Argentina, Brasil, Chile, Colombia, Ecuador, México, Perú y Portugal.

B4A en español - Juan Antonio Villalpando
(BASIC4Android)

-- Tutorial de B4A --

Volver al índice del tutorial

____________________________

21.- Cámara.
- Bajar el código: Camara.zip

- Tutorial. Estudio de la Cámara.

- Presentación.

- Vamos a realizar un programa para hacer fotos con la cámara y guardarlas en una carpeta.
- Este tutorial está basado en el tutorial oficial de Basic4Android.

____________________________
- Designer. Layout.

Creamos los controles
Nota: Para poner el emulador en horizontal, pulsamos las teclas
Ctrl  F11

- Por ahora solo se pueden tomar fotos, no vídeos.
(Ver VideoRecord Application:
http://www.basic4ppc.com/android/help/audio.html#videorecordapp)
- Las fotos siempre deber ser tomadas en formato horizontal "Landscape"
(Ver tutorial oficial donde actúa sobre el archivo AndroidManifest.Xml )

 

- Cargamos la Librería:
Camera

Las librerías constan de un par de archivos de la forma:
Camera.jar
Camera.xml

que se encuentran en la subcarpeta Libraries donde está instalado el Basic4Android:
C:\Program Files (x86)\Anywhere Software\Basic4android\Libraries


 

Insertamos mediante
Designer / Add View

Panell1  
Button1

 

Guardamos el Designer:
File / Save : Layout

 

- Si pusistes primero el Panel y luego el Button, el Button habrá tomado como ubicación "padre" al Panel, no al Activity.

- Para que el "padre" del Button sea el Activity, ponemos la propiedad Parent del Button1 en Activity.


(El Parent de un control es el lugar donde se ubica, normalmente es en el Activity o en un Panel)

____________________________
- Código (copia y pega).

Código del programa en Basic4Android
'Activity module
Sub Process_Globals
' http://www.basic4ppc.com/forum/basic4android-getting-started-tutorials/6891-take-pictures-internal-camera.html
    ' Juan Antonio Villalpando
    ' juana1991@yahoo.com
End Sub

Sub Globals
    Dim camara As Camera
    Dim Panel1 As Panel
    Dim Button1 As Button    
End Sub

Sub Activity_Create(FirstTime As Boolean)
    Activity.LoadLayout("Layout") ' Cargamos el Designer
End Sub

Sub Activity_Resume 
Button1.Enabled = False 
camara.Initialize(Panel1, "camara") 
End Sub

Sub Activity_Pause(UserClosed As Boolean)  
camara.Release  
End Sub

Sub camara_Ready(Success As Boolean)
    If Success Then
    camara.StartPreview
    Button1.Enabled = True
    Else 
    ToastMessageShow("No se puede activar la cámara", True)
    End If
End Sub

Sub camara_PictureTaken(Data() As Byte)
    camara.StartPreview
    Dim salida As OutputStream
    salida = File.OpenOutput(File.DirRootExternal,"foto.jpg",False)
    salida.WriteBytes(Data,0,Data.Length)
    salida.Close
    ToastMessageShow("Imagen guardada en: " & File.Combine(File.DirRootExternal,"foto.jpg"), True)
    Button1.Enabled = True
End Sub

Sub Button1_Click
Button1.Enabled = False
camara.TakePicture
End Sub

 

____________________________________

Enlaces importantes

- Otra librería para la cámara. Tutoriales.

- Versión 2.20

- Consulta también este tutorial sobre la cámara. (CameraEx class)
____________________________________

____________________________________
____________________________________

- Recordamos tres lugares de directorios.

DirAssets es el directorio del programa C:\Android\<Programa>\Files
es un directorio de solo lectura, por lo tanto no podemos (desde el programa), cambiar nada en él.

DirRootExternal es un directorio en la tarjeta de memoria SD de nuestro móvil. Si en la tarjeta de nuestro móvil tenemos un directorio que se llama Fotos, podemos ir a ese directorio de esta manera...

out = File.OpenOutput(File.DirRootExternal & "/" & "Fotos", "foto2.jpg", True)

- Podemos llegar a la SD Card, entrando en... /mnt/sdcard

Esto lo debemos hacer desde el shell de LINUX como comento en un tutorial posterior.

DirInternal es un directorio existente en nuestro Programa y que solo podemos acceder mediante ese Programa.
Para ver el listado de archivos en ese directorio, lo debemos hacer mediante el shell del LINUX, esto lo he comentado anteriormente y se explica con más detalle en el tutorial LINUX. Este directorio se encuentra en una subcarpeta de nuestro Programa, pero no podemos verlo mediante el Explorador de Windows.

out = File.OpenOutput(File.DirInternal & "/" , "logo2.png", True)

La manera de llegar a ese directorio es yendo a linux y pasando a la carpeta

cd /data/data/<anywheresoftware.b4a.samples.programa>/files

ls

DirDefaultExternal es el directorio por defecto de la aplicación en el móvil. Se puede acceder a él cualquier aplicación mediante la ruta:
[external device]/Android/data/[package name]/files/

________________________________

- Mi correo:
juana1991@yahoo.com
- KIO4.COM - Política de cookies. Textos e imágenes propiedad del autor:
© Juan A. Villalpando
No se permite la copia de información ni imágenes.
Usamos cookies propias y de terceros que entre otras cosas recogen datos sobre sus hábitos de navegación y realizan análisis de uso de nuestro sitio.
Si continúa navegando consideramos que acepta su uso. Acepto    Más información