Android Lector Código de Barra Example
Barcode Scanner Code in Java
Hola amigos comenzamos nuevamente en esta ocasión aprenderemos a desarrollar una aplicación enlazada a una aplicación lectora de códigos de barra, paso a paso iremos dándole un manejo mas complejo.Crear Nuevo Proyecto Android Studio
Para crear el proyecto (Aquí).Crear Interfaz Visual
Para la interfaz vamos a utilizar dos controles TextView y un Button. Añadiremos el botón y le escribiremos el nombre SCANEO.
<Button android:id="@+id/scan_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:text="SCANEO" />
Listo agregaremos los dos TextView y les escribiremos a cada uno respectivamente.
<TextView
android:id="@+id/scan_formato"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textIsSelectable="true"
android:text="Formato"
android:textSize="24dp"
android:textColor="#000"
android:layout_marginBottom="67dp"
android:layout_above="@+id/scan_contenido"
android:layout_alignStart="@+id/scan_button" />
<TextView
android:id="@+id/scan_contenido"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textIsSelectable="true"
android:text="Contenido"
android:textSize="24dp"
android:textColor="#000"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true" />
El diseño quedaría de esta forma pero ustedes pueden colocarlos en la forma que sea de su agrado.
Agregar Librerías Externas ZXing
Las librerías que utilizaremos serán las siguientes. Que sera la encargadas de enlazar la aplicación con la cámara para poder obtener el contenido de la lectura del código de barra.Ahora el siguiente paso sera agregar nuestras clases al paquete.
Podemos descargarlas de los siguientes enlaces. (IntentIntegrator y IntentResult).
Agregaremos la primera clase nos dirigimos al paquete que hemos creado y presionamos clic derecho.
Daremos clic y nos mostrara la siguiente ventana, donde escribiremos el nombre de nuestra clase.
Presionamos Ok y podremos escribir el siguiente código. Y seria el mismo proceso para la otra clase.
Código de MainActivity
Primero declararemos para nuestra instancia de MainActivity.Un extends e implements.
public class MainActivity extends ActionBarActivity implements View.OnClickListener
Ahora declararemos las variables que utilizaremos para nuestros controles.
//--Declaramos las variables
private Button scanBoton;
private TextView formatoTxt, contenidoTxt;
Ahora la asignación de propiedades en nuestro evento OnCreate.
Teniendo listo esto seguiremos con la siguiente parte que seria declara la función para nuestro botón que ejecutara la acción al presionarlo. Debido a nuestro View.OnClickListener que esta en la espera de que un control reciba un click y preguntara si nuestro botón ha sido presionado y ejecuta la acción.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//Se inicia el botón de Scan y se le asignan las propiedades
scanBoton = (Button)findViewById(R.id.scan_button);
//Se Instancia el Campo de Texto para el nombre del formato de código de barra
formatoTxt = (TextView)findViewById(R.id.scan_formato);
//Se Instancia el Campo de Texto para el contenido del código de barra
contenidoTxt = (TextView)findViewById(R.id.scan_contenido);
//Se agrega la clase MainActivity.java como Listener del evento click del botón de Scan
scanBoton.setOnClickListener(this);
}
Teniendo listo esto seguiremos con la siguiente parte que seria declara la función para nuestro botón que ejecutara la acción al presionarlo. Debido a nuestro View.OnClickListener que esta en la espera de que un control reciba un click y preguntara si nuestro botón ha sido presionado y ejecuta la acción.
@Override
public void onClick(View view) {
//Se responde al evento click
if(view.getId()==R.id.scan_button){
//Se instancia un objeto de la clase IntentIntegrator
IntentIntegrator scanIntegrator = new IntentIntegrator(this);
//Se procede con el proceso de scaneo
scanIntegrator.initiateScan();
}
}
Ahora nuestra función que obtendrá el resultado de nuestro escaneo al momento de ejecutar la aplicación y detectar que ha leído el código de barra.
Esto seria todo ahora seguiremos con el ultimo paso que es ejecutar nuestra aplicación.
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
//Se obtiene el resultado del proceso de scaneo y se parsea
IntentResult scanningResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, intent);
if (scanningResult != null) {
//Quiere decir que se obtuvo resultado pro lo tanto:
//Desplegamos en pantalla el contenido del código de barra scaneado
String scanContent = scanningResult.getContents();
contenidoTxt.setText("Contenido: " + scanContent);
//Desplegamos en pantalla el nombre del formato del código de barra scaneado
String scanFormat = scanningResult.getFormatName();
formatoTxt.setText("Formato: " + scanFormat);
}else{
//Quiere decir que NO se obtuvo resultado
Toast toast = Toast.makeText(getApplicationContext(),
"No se ha recibido datos del scaneo!", Toast.LENGTH_SHORT);
toast.show();
}
}
Esto seria todo ahora seguiremos con el ultimo paso que es ejecutar nuestra aplicación.
Crear emulador (Aquí)
Ejecutamos nuestra aplicación la cual nos pedirá que instalemos la siguiente aplicación.
Una vez teniendo instalada la aplicación procederemos a utilizarlo para hacer nuestro escaneó.
Y obtendremos el resultado de la lectura del código de barra.
Descargar proyecto.
Espero el contenido haya sido de su agrado cualquier duda déjame tu comentario y con gusto te responderé. Gracias por tu tiempo.
Una vez teniendo instalada la aplicación procederemos a utilizarlo para hacer nuestro escaneó.
Descargar proyecto.
Conclusión
Bueno con esta aplicación útil podemos utilizarla para la lectura de códigos de barra sin necesidad de invertir en un dispositivo para lector de barra que son de precios altos y con el simple desarrollo de esta aplicación facilitamos la manipulación de dichos códigos.Espero el contenido haya sido de su agrado cualquier duda déjame tu comentario y con gusto te responderé. Gracias por tu tiempo.
No hay comentarios:
Publicar un comentario