Multimedia en android
-
Upload
rafa-gonzalez-jimenez -
Category
Technology
-
view
118 -
download
1
Transcript of Multimedia en android
Multimedia en androidJosé Manuel Castillo PérezRafael González Jiménez
índice Introducción Imágenes Sonido Video Conclusión
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.
Imágenes
Imágenes ¿Dónde guardarlas? ¿En qué formato? ¿Con qué nombre?
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
Imágenes
Imágenes ImageView
Imágenes ImageButton
Imágenes
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]); } }); } }
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; }}
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;}
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()
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);}
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;}}
Audio y video
Formatos
Para audio:
MP3 AAC FLAC OGG WAV MIDI
Para video:
3GPP MPEG-4 WebM MKV
Clases Para audio:
SoundPool, JetPlayer AsyncPlayer AudioTrack
Para video:
VideoView
Ambos: MediaPlayer
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;
MediaPlayer
MediaPlayer
MediaPlayer
Conclusión y preguntas
FIN
José Manuel Castillo Pérez Rafael González Jiménez