5.Curso Programacion Android: Utilizar el led de la camara como linterna


 

 
 
Objetivo:
Programar un botón para controlar el led de la cámara y poder utilizarlo como linterna.
Logística adicional necesaria:
Para poder probarlo necesitaremos un móvil con led en la cámara, ya que el emulador no muestra información al respecto.
Código fuente java (principal.java):
import android.app.Activity;
import android.hardware.Camera;
import android.hardware.Camera.Parameters;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class MainActivity extends Activity {
   Camera camera = null;
   Parameters parameters;
   Button FlashLightControl;
   // Called when the activity is first created.
   @Override
   public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      //Creamos un boton con el texto adecuado
      FlashLightControl = (Button)findViewById(R.id.flashcontrol);
      FlashLightControl.setText("ENCENDER LED CAMARA");
   }
   /**
    * Control LED Camera.
    * Esta funcion se ejecuta al clickar el boton que hemos incluido
    * @param arg0
    */
   public void onClickLED(View arg0) {
      try{
         // Al pulsar, si el Led estaba encendido se apaga y viceversa
         if(camera == null){
            camera = Camera.open();
            parameters = camera.getParameters();
            parameters.setFlashMode(Parameters.FLASH_MODE_TORCH);
            camera.setParameters(parameters);
            FlashLightControl.setText("APAGANDO LED CAMARA");
         }else{
            parameters.setFlashMode(Parameters.FLASH_MODE_OFF);
            camera.setParameters(parameters);
            camera.release();
            camera = null;
            FlashLightControl.setText("ENCENDIENDO LED CAMARA");
         }
      }catch(Exception e){
         //Control errores
      }
   }
   /**
    * Si al salir está el LED encendido, lo apagamos.
    * Esta funcion es llamada cuando se cierra una aplicación.
    */
   public void finish(){
      if (camera != null){
         parameters.setFlashMode(Parameters.FLASH_MODE_OFF);
         camera.setParameters(parameters);
         camera.release();
         camera = null;
      }
      super.finish();
   }
}



Código fuente XML (main.xml):

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:ads="http://schemas.android.com/apk/res/com.linterna.torch"
 android:orientation="vertical" android:id="@+id/main_1"
 android:layout_width="fill_parent" android:layout_height="fill_parent"
 android:background="#FFFFFF">
   <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:id="@+id/main_1"
    android:layout_width="fill_parent" android:layout_height="fill_parent">
      <!-- Titulo de nuestra aplicacion -->
      <TextView android:layout_width="fill_parent"
       android:layout_height="wrap_content" android:textStyle="bold"
       android:gravity="center_vertical|center_horizontal" android:text="@string/title" />
      <!-- Boton para encender o apagar el led de la camara -->
      <Button android:id="@+id/flashcontrol" android:layout_width="fill_parent"
       android:layout_height="wrap_content" android:onClick="onClickLED"
       android:text="SWITCH ON LED " />
   </LinearLayout>
</RelativeLayout>

Añadir el permiso necesario al AndroidManifest.xml :

</pre>
<!-- NECESARIO PARA EL LED FLASH --></div>
<uses-permission android:name="android.permission.CAMERA"/>

Acerca de Guillermo Navarro

Creador de TodoAndroid y Androtoall

Publicado el 2 de agosto de 2012 en Programación, Tutoriales. Añade a favoritos el enlace permanente. 2 comentarios.

  1. Hola, no funciona para mi Xperia go

  2. Buenas!
    A mí tampoco me anduvo…
    Pero cambié un par de cosas para adecuarlo a mi manera de programar y no tuve problema

    gracias por el codigo!

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: