graficos andoroid

Post on 04-Aug-2015

30 views 3 download

Transcript of graficos andoroid

Programación  Android  

Rafael  Morón  Abad  rafaelmoron@gmail.com  

Gráficos  Para  trabajar  con  gráficos,  Android  nos  ofrece  estas  herramientas:    1.  API  2D  –  Canvas  y  Drawable  2.  OpenGL  ES  

API  2D  En  gráficos  2D,  normalmente  organizaremos  el  renderizado  de  dos  formas:  •  Dibujar  en  una  vista  (View)  que  forma  parte  de  la  Interfaz  de  Usuario  Suele  ser  conveniente  cuando  no  se  repinta  toda  la  pantalla  o  es  una  parte  que  no  cambia  muchas  veces  por  segundo  

•  Dibujar  directamente  sobre  un  lienzo  (Canvas)    Mejor  rendimiento,  sobre  todo  cuando  se  repinta    conTnuamente  (varias  veces  por  segundo).  

Paint  android.graphics.Paint  es  una  clase  que  almacena  el  esTlo  y  la  información  de  color  que  se  uTlizará  para  dibujar  formas  geométricas,  texto  y  mapas  de  bits.  

setColor (int color)""Maneja el color en que se dibujará."

setTypeface(int color)""Establece el estilo de la tipografía:""Typeface.BOLD, BOLD_ITALIC, ITALIC, NORMAL"

setUnderlineText(boolean underlineText)""Se indica si se subrayará el texto o no."

setTextSize(float textSize)""Tamaño de fuente del texto"

Canvas  Canvas  (lienzo)  es  una  interfaz  que  permite  pintar  en  un  área  rectangular,  que  refleja  las  acciones  sobre  un  mapa  de  bits  (Bitmap)  asociado:    Bitmap b = Bitmap.createBitmap!!(100, 100, Bitmap.Config.ARGB_8888);"

Canvas c = new Canvas(b);"  Para  escribir  en  la  pantalla,  no  será  necesario  instanciar  Canvas  directamente.  

Canvas  –  Métodos  Principales  métodos  de  Canvas:  drawBitmap(Bitmap bitmap, float left, float top, Paint paint)""Dibuja un Bitmap con la esquina superior izquierda en

la posición indicada del lienzo"drawBitmap(Bitmap bitmap, Rect src, Rect dst, Paint paint)""Escala/ajusta un Bitmap al área de destino"

drawCircle(float cx, float cy, float radius, Paint paint)""Dibuja un círculo"

drawColor(int color)""Llena el lienzo con un color"

 

Canvas  –  Métodos  (II)  drawLine(float startX, float startY, float stopX, float stopY, Paint paint)""Dibuja una línea de (startX, startY) a (stopX, stopY)."

drawRect(float left, float top, float right, float bottom, Paint paint)""Dibuja el rectángulo especificado."

drawText(String text, float x, float y, Paint paint)""Dibuja texto en (x, y) con el Paint especificado."

Canvas  –  Métodos  (III)  drawLine(float startX, float startY, float stopX, float stopY, Paint paint)""Dibuja una línea de (startX, startY) a (stopX, stopY)."

drawRect(float left, float top, float right, float bottom, Paint paint)""Dibuja el rectángulo especificado."

drawText(String text, float x, float y, Paint paint)""Dibuja texto en (x, y) con el Paint especificado."

View  –  métodos  clave  Para  conectar  los  gráficos  con  nuestra  vista  uTlizaremos  dos  métodos  de  View:  

onDraw(Canvas canvas)""Redefiniremos este método con el código de

redibujado, utilizando el canvas de la vista, que recibimos como parámetro"invalidate()""Invocaremos este método cuando algún cambio

en la vista o su actividad haga que lo pintado no sea ya válido. El sistema llamará entonces a onDraw() para que se redibuje la vista  

API  3D  Para  gráficos  3D,  en  Android  podemos  usar:  •  OpenGL  ES  

Está  basado  en  OpenGL,  pero  no  es  compaTble  en  senTdo  estricto.  Permite  uTlizar  gráficos  de  forma  “sencilla”.  

•  Renderscript    Para  gráficos  de  alto  rendimiento.  A  cambio,    la  visibilidad  a  nivel  de  depuración  se  reduce    y  la  estructura  del  código  se  complica.  

Ejemplo  PrácTco:  Puzzle  Deslizante  

Puzzle  Deslizante  

Realizar  un  puzzle  deslizante  (8-­‐puzzle)  para  Android  2.2.    L a   p i e z a   a   move r   s e  seleccionará   mediante   una  pulsación   de   pantalla   sobre  esa   pieza,   que   ocupará   el  hueco  existente.