Download - graficos andoroid
Programación Android
Rafael Morón Abad [email protected]
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.