Table of Contents

CameraView control

(Information and examples taken from the DroidScript documentation)

Description

Create a camera preview control using the CreateCameraView function of the app object:

cam = app.CreateCameraView( width, height, options );

This control allows your program to show a live feed of what is currently being seen by the phone/tablet's camera. If your device has a front facing camera and is at least version 2.3 of Android you can use the “Front” option to show the front camera's preview.

You will need to call the StartPreview function of the CameraView control to start the preview
(Note: On some phones it is neccessary to wait at least one second before calling the StartPreview function).

cam.StartPreview();

Use the TakePicture function to take a picture and save it to a given location.

cam.TakePicture( filename );

Use the SetPictureSize function to set the dimensions in pixels of the pictures taken (eg. 1024 x 768).

cam.SetPictureSize( width, height );

For more sophisticated examples including motion detection and video streaming, check out the 'Camera Stream', 'Camera Snap' and 'Camera Motion' sample programs in the DroidScript samples section.


Methods

Some controls use the same methods.
For examples of the same methods look here.

Method Description
CameraView.AutoCapture( folder, fileName, maxCount )
CameraView.Destroy()
CameraView.FindFaces( max )
CameraView.Focus()
CameraView.GetAbsHeight()
CameraView.GetAbsWidth()
CameraView.GetCameraCount()
CameraView.GetColorEffects() use in SetOnReady
CameraView.GetHeight()
CameraView.GetImageHeight()
CameraView.GetImageWidth()
CameraView.GetMaxZoom()
CameraView.GetParameters()
CameraView.GetPictureSizes()
CameraView.GetPixelData( format,left,top,width,height ) format can be “rawbase64”, “pngbase64” or “jpgbase64”
CameraView.GetPosition()
CameraView.GetType()
CameraView.GetVisibility()
CameraView.GetWidth()
CameraView.GetZoom()
Cameraview.IsRecording()
CameraView.MotionMosaic( xtiles, ytiles, sensitivity, minPeriod, imageObj )
CameraView.Record(file,seconds)
CameraView.Release()
CameraView.ReportColors( list,callback,sampSize,maxRate )
CameraView.SetBackColor( color )
CameraView.SetBackGradient( color1,color2,color3,p4,p5,p6,p7 )
CameraView.SetBackGradientRadial( x,y,r,color1,color2,color3,p7 )
CameraView.SetBackground( imagefile,options )
CameraView.SetColorEffect( effect ) use in SetOnReady
CameraView.SetDuplicateImage( img1,img2 )
CameraView.SetFlash( onoff ) set to true or false
CameraView.SetFocusMode( mode )
CameraView.SetMargins( left,top,right,bottom )
CameraView.SetOnMotion( callback )
CameraView.SetOnPicture( callback )
CameraView.SetOnReady( callback )
CameraView.SetPadding( left,top,right,bottom )
CameraView.SetParameter( name,value )
CameraView.SetPictureSize( width,height ) Set size in pixel
CameraView.SetPosition( left, top, width, height )
CameraView.SetPreviewImage( imageObj )
CameraView.SetScale( x,y )
CameraView.SetSize( width, height )
CameraView.SetSound( onoff )
CameraView.SetVisibility( HideShow )
CameraView.SetZoom( level )
CameraView.StartPreview()
CameraView.Stop()
CameraView.StopPreview()
CameraView.Stream( ip,p2,quality,fps,p5 )
CameraView.TakePicture( fileName )

Options

These are the camera resolution options:  


Example - Show camera preview

function OnStart()
{
  lay = app.CreateLayout( "Linear", "VCenter,FillXY" );
 
  cam = app.CreateCameraView( 0.8, 0.4 );
 
  cam.SetOnReady( cam_OnReady );
 
  lay.AddChild( cam );
 
  app.AddLayout( lay );
}
 
// Runs after "SetOnReady" as a callback
function cam_OnReady() {
  cam.StartPreview();
}

Example - Take pictures

function OnStart()
{
  lay = app.CreateLayout( "Linear", "VCenter,FillXY" );
 
  cam = app.CreateCameraView( 0.8, 0.4 );
  lay.AddChild( cam );
  cam.SetPictureSize( 1024, 768 );
  setTimeout( "cam.StartPreview()", 1000 );
 
  btn = app.CreateButton( "Snap", 0.3, -1 );
  btn.SetOnTouch( Snap );
  lay.AddChild( btn );
 
  app.AddLayout( lay );
}
 
function Snap()
{
  cam.TakePicture( "/sdcard/MyPic.jpg" );
  app.ShowPopup("Picture saved");
}

Example - Record Video

//Called when application is started. 
function OnStart() 
{    
	//Fix orientation to landscape since 
	//most phones cameras work this way.    
	app.SetOrientation( "Landscape" ); 
	   
	//Create horizontal layout that fills the screen. 
	lay = app.CreateLayout( "Linear", "Horizontal,FillXY,VCenter" ); 
	lay.SetBackground( "/res/drawable/pattern_carbon", "repeat" ); 
  
	//Create camera view control. 
	cam = app.CreateCameraView( 0.6, 0.8 );	 
	cam.SetOnReady( cam_OnReady ); 
	cam.SetMargins( 0, 0, 0.04, 0 ); 
	lay.AddChild( cam );   
 
	//Create vertical layout on right for other stuff. 
	layRight = app.CreateLayout( "Linear", "Vertical" ); 
	lay.AddChild( layRight ); 
 
	//Create record button. 
	btn = app.CreateButton( "Record", 0.2, 0.15, "Alum" ); 
	btn.SetMargins( 0, 0.06, 0, 0 ); 
	btn.SetOnTouch( btn_OnTouch ); 
	layRight.AddChild( btn );  
 
	//Add main layout to app. 
	app.AddLayout( lay ); 
 
	//Create a folder for recordings. 
	recFolder = "/sdcard/Videos"; 
	app.MakeFolder( recFolder ); 
} 
 
//Called when camera is ready. 
function cam_OnReady() 
{ 
    //Set focus mode and start preview. 
    cam.SetFocusMode( "Video" ); 
    cam.StartPreview(); 
} 
 
//Handle record button. 
function btn_OnTouch() 
{ 
	if( cam.IsRecording() )  
	{ 
	    //Stop recording and update button. 
	    cam.Stop(); 
	    btn.SetText( "Record" ); 
	} 
	else  
	{ 
	    //Start recording and update button. 
	    cam.Record( recFolder+"/test.mp4" ); 
	    btn.SetText( "Stop" ); 
	} 
}