graficos andoroid

13
Programación Android Rafael Morón Abad [email protected]

Transcript of graficos andoroid

Page 1: graficos andoroid

Programación  Android  

Rafael  Morón  Abad  [email protected]  

Page 2: graficos andoroid
Page 3: graficos andoroid

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

Page 4: graficos andoroid

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).  

Page 5: graficos andoroid

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"

Page 6: graficos andoroid

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.  

Page 7: graficos andoroid

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"

 

Page 8: graficos andoroid

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."

Page 9: graficos andoroid

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."

Page 10: graficos andoroid

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  

Page 11: graficos andoroid

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.  

Page 12: graficos andoroid

Ejemplo  PrácTco:  Puzzle  Deslizante  

Page 13: graficos andoroid

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.