Hem de realitzar 2 aplicacions:
Lector de codi de barres, utilitzant la llibreria explicada a classe cal realitzar una aplicació que llegeixi i mostri les dades d'un codi de barres. L'aplicació ha de tenir interfície d'usuari
Reproducció de fitxer d'audio
Cal realitzar una aplicació que reprodueixi un fitxer mp3 que es trobi a la mèmoria flash del dipositiu
Lector interficie Aqui esta el codi del xml de l'aplicació lector on posarem un boto i un titol.
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:layout_gravity="center"> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Lector" android:gravity="center" android:textSize="25sp"/> <Button android:text="Scanejar codi BAR" android:id="@+id/scanner" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center" android:layout_gravity="center_horizontal"> </Button> </LinearLayout>
src Aquí esta la clase que realitza l'acció quant es fa clic al boto i es llegeix el codi de barres.
package com.iesebre.lectorcodibarres; import android.app.Activity; import android.content.ActivityNotFoundException; import android.content.Intent; import android.os.Bundle; import android.util.Log; import android.view.Gravity; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.Toast; public class MainActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); try { Button scann = (Button)findViewById(R.id.scanner); scann.setOnClickListener(new OnClickListener() { public void onClick(View v) { Intent intent = new Intent("com.google.zxing.client.android.SCAN"); intent.putExtra("SCAN_MODE", "PRODUCT_MODE"); startActivityForResult(intent, 0); } }); } catch (ActivityNotFoundException anfe) { Log.e("onCreate", "Scanner Not Found", anfe); } } public void onActivityResult(int requestCode, int resultCode, Intent intent) { if (requestCode == 0) { if (resultCode == RESULT_OK) { String contents = intent.getStringExtra("SCAN_RESULT"); String format = intent.getStringExtra("SCAN_RESULT_FORMAT"); // Handle successful scan Toast toast = Toast.makeText(this, "Contingut:" + contents + " Format:" + format , Toast.LENGTH_LONG); toast.setGravity(Gravity.TOP, 25, 400); toast.show(); } else if (resultCode == RESULT_CANCELED) { // Handle cancel Toast toast = Toast.makeText(this, "a sigut Cancelat", Toast.LENGTH_LONG); toast.setGravity(Gravity.TOP, 25, 400); toast.show(); } } } }
Reproductor src
package com.iesebre.multimedia; import android.media.MediaPlayer; import android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class MainActivity extends Activity { MediaPlayer mediaPlayer; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //declarar boto Button reproduir = (Button) findViewById(R.id.reproduir); Button parar = (Button) findViewById(R.id.parar); //quant es fa clic al boto realitza una accio reproduir.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub // es tria la canço que es vol reproduir mediaPlayer = MediaPlayer.create(getBaseContext(), R.raw.kalimba); mediaPlayer.start(); // no need to call prepare(); create() does that for you } }); //quant es fa clic al boto realitza una accio parar.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub mediaPlayer.stop(); } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } }
interficie
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" > <Button android:id="@+id/reproduir" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="0.67" android:text="@string/reproduir" /> <Button android:id="@+id/parar" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="0.45" android:text="@string/parar" /> </LinearLayout>
lector:
Reproductor
lector de codi de barres
si fem clic al boto sobrirà l'aplicació de lectura.
public void onClick(View v) { Intent intent = new Intent("com.google.zxing.client.android.SCAN"); intent.putExtra("SCAN_MODE", "PRODUCT_MODE"); startActivityForResult(intent, 0); }
un cop fet aixo mostrara el resultat baix.
public void onActivityResult(int requestCode, int resultCode, Intent intent) { if (requestCode == 0) { if (resultCode == RESULT_OK) { String contents = intent.getStringExtra("SCAN_RESULT"); String format = intent.getStringExtra("SCAN_RESULT_FORMAT"); // Handle successful scan Toast toast = Toast.makeText(this, "Contingut:" + contents + " Format:" + format , Toast.LENGTH_LONG); toast.setGravity(Gravity.TOP, 25, 400); toast.show(); } else if (resultCode == RESULT_CANCELED) { // Handle cancel Toast toast = Toast.makeText(this, "a sigut Cancelat", Toast.LENGTH_LONG); toast.setGravity(Gravity.TOP, 25, 400); toast.show(); } } }
Reproductor Reproduir
reproduir.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub // es tria la canço que es vol reproduir mediaPlayer = MediaPlayer.create(getBaseContext(), R.raw.kalimba); mediaPlayer.start(); // no need to call prepare(); create() does that for you } });
Parar
reproduir.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub // es tria la canço que es vol reproduir mediaPlayer = MediaPlayer.create(getBaseContext(), R.raw.kalimba); mediaPlayer.start(); // no need to call prepare(); create() does that for you } });