Multimedia en android

25
Multimedia en android José Manuel Castillo Pérez Rafael González Jiménez

Transcript of Multimedia en android

Page 1: Multimedia en android

Multimedia en androidJosé Manuel Castillo PérezRafael González Jiménez

Page 2: Multimedia en android

índice Introducción Imágenes Sonido Video Conclusión

Page 3: Multimedia en android

IntroducciónLas aplicaciones android permiten insertar gran cantidad de elementos multimedia, como:

Imágenes estáticas Imágenes interactivas Clics de sonido (canciones) Vídeos y películas completas

Vamos a ver cada cosa a continuación.

Page 4: Multimedia en android

Imágenes

Page 5: Multimedia en android

Imágenes ¿Dónde guardarlas? ¿En qué formato? ¿Con qué nombre?

Page 6: Multimedia en android

ImágenesComo imagen de fondo…

En el xml colocar: android:background="@drawable/fondo" >

Donde en la carpeta drawable tendremos que tener previamente la imagen fondo.jpg

Page 7: Multimedia en android

Imágenes

Page 8: Multimedia en android

Imágenes ImageView

Page 9: Multimedia en android

Imágenes ImageButton

Page 10: Multimedia en android

Imágenes

Page 11: Multimedia en android

Imágenes public class MainActivity extends Activity 

{

     ImageView selectedImage;       private Integer[] mImageIds = {                R.drawable.image1,                R.drawable.image2,                R.drawable.image3,                R.drawable.image4,                R.drawable.image5,                R.drawable.image6,                R.drawable.image7,                R.drawable.image8        };    @Override    public void onCreate(Bundle savedInstanceState)     {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);                    Gallery gallery = (Gallery) findViewById(R.id.gallery1);       

selectedImage=(ImageView)findViewById(R.id.imageView1);        gallery.setSpacing(1);        gallery.setAdapter(new GalleryImageAdapter(this));

         // clicklistener for Gallery        gallery.setOnItemClickListener(new OnItemClickListener() {            public void onItemClick(AdapterView<?> parent, View v, int position, long id) {                Toast.makeText(MainActivity.this, "Your selected position = " + position, Toast.LENGTH_SHORT).show();                // show the selected Image                selectedImage.setImageResource(mImageIds[position]);            }        });    }  }

Page 12: Multimedia en android

Imágenes public class GalleryImageAdapter extends

BaseAdapter {    private Context mContext;

    private Integer[] mImageIds = {            R.drawable.image1,            R.drawable.image2,            R.drawable.image3,            R.drawable.image4,            R.drawable.image5,            R.drawable.image6,            R.drawable.image7,            R.drawable.image8    };

    public GalleryImageAdapter(Context context)     {        mContext = context;    }

    public int getCount() {        return mImageIds.length;    }

    public Object getItem(int position) {        return position;    }

    public long getItemId(int position) {        return position;    }

    // Override this method according to your need    public View getView(int index, View view, ViewGroup viewGroup)     {        // TODO Auto-generated method stub        ImageView i = new ImageView(mContext);

        i.setImageResource(mImageIds[index]);        i.setLayoutParams(new Gallery.LayoutParams(200, 200));            i.setScaleType(ImageView.ScaleType.FIT_XY);

        return i;    }}

Page 13: Multimedia en android

Imágenes Para coger imágenes de la SD en lugar de en la carpeta

drawable…

private Cursor getImagesSD() {String[] imgColumnID = { MediaStore.Images.Thumbnails._ID };

Cursor cursor = managedQuery(

MediaStore.Images.Media.EXTERNAL_CONTENT_URI,imgColumnID,MediaStore.Images.Media.DATA + " like ? ",new String[] { "%yourFolderHere%" }, null);

return cursor;}

Page 14: Multimedia en android

Imágenes interactivas: paint Creamos una actividad y referenciamos una instancia de una clase

derivada de View.

La subclase de View debe implementar el método OnDraw(),donde se define el despliegue gráfico.

El objeto Paint se encarga de establecer las caracteristicasdel objeto gráfico a desplegar.

El objeto Canvas se encarga de desplegar los objetosgráficos (objetos geométricos, texto, paths, etc)

Tambien debe sobrecargarse el evento OnTouchEvent() dondese identifica el tipo de MotionEvent generado por el usuario(UP, DOWN,MOVE).

El repintado se hace con una llamada al método invalidate()

Page 15: Multimedia en android

Imágenes interactivas: paintPublic class FingerPaintActivity xtends Activity {Float x,y;Stringaccion="accion";Pathpath=New Path();

@OverrideProtected void onCreate(BundlesavedInstanceState) {Super .onCreate(savedInstanceState);FingerPaintView fpaintv= new FingerPaintView(this);setContentView(fpaintv);}Class FingerPaintView extends View{Public FingerPaintView(Context context) {Super (context);//}@Override

Protected Void onDraw(Canvas canvas) {canvas.drawColor(Color.GRAY );Paint paint= New Paint();paint.setAntiAlias(True );paint.setTextSize(15);canvas.drawText(accion, 10, 10, paint);canvas.drawText("x:"+x, 10, 30, paint);canvas.drawText("y:"+y, 10, 50, paint);paint.setStyle(Style.STROKE);paint.setStrokeWidth(6);paint.setColor(Color.BLUE);

if(accion=="down")path.moveTo(x,y);if(accion=="move")path.lineTo(x,y);canvas.drawPath(path, paint);}

Page 16: Multimedia en android

Imágenes interactivas: paint@OverridePublic boolean onTouchEvent(MotionEvent event){x= event.getX();y= event.getY();

If (event.getAction()==MotionEvent.ACTION_DOWN){accion="down";}If (event.getAction()==MotionEvent. ACTION_MOVE){accion="move";}If (event.getAction()== MotionEvent.ACTION_UP){accion="up";}invalidate();

Return true;}}

Page 17: Multimedia en android

Audio y video

Page 18: Multimedia en android

Formatos

Para audio:

MP3 AAC FLAC OGG WAV MIDI

Para video:

3GPP MPEG-4 WebM MKV

Page 19: Multimedia en android

Clases Para audio:

SoundPool, JetPlayer AsyncPlayer AudioTrack

Para video:

VideoView

Ambos: MediaPlayer

Page 20: Multimedia en android

MediaPlayer La siguiente interfaz que corresponde al

escuchador de eventos:

• MediaPlayer.OnPreparedListener

Declaramos las variables que necesitemos junto con estas:

• private boolean pause; • private String path; • private int savePos = 0;

Page 21: Multimedia en android

MediaPlayer

Page 22: Multimedia en android

MediaPlayer

Page 23: Multimedia en android

MediaPlayer

Page 24: Multimedia en android

Conclusión y preguntas

Page 25: Multimedia en android

FIN

José Manuel Castillo Pérez Rafael González Jiménez