jueves, 2 de agosto de 2012

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):


package com.example.pruebastutoriales;
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 :

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




Guille Navarro

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation.

0 comentarios:

Publicar un comentario

 

Copyright @ 2013 TodoAndroid.