PDA

Ver la Versión Completa : canvas


pyciy
22/03/14, 13:56:21
Como se implementa el dibujo de un rectángulo en la parte superior de un layout que se hace mas grande o mas pequeño según que botones se pulse. No hablo de un juego, seria en un linearlayout por ejemplo.

kriogeN
22/03/14, 16:59:09
No es el mismo caso que el tuyo, porque yo lo uso para poner cuadros flotantes de ayuda dentro de la aplicación, pero puede ser que te valga.

Lo que yo hago es crear una clase que implementa a Drawable, dejas todos los métodos tal y como vienen por defecto, menos draw(Canvas canvas) que es el que verdaderamente nos interesa.

En ese método usas el Canvas que te llega como parámetro para pintar todo lo que quieras y como quieras, no tienes que inicializarlo, ya está inicializado. Para saber las medidas que tiene el Drawable puedes usar:

Rect r = getBounds();

Ya lo único que te queda por hacer es pintarlo como fondo de tu LinearLayout con el método setBackgroundDrawable.

Ahora bien, si quieres que aumente y disminuya de tamaño tendrás que modificar su LayoutParams mediante código.

pyciy
26/03/14, 00:23:19
OK gracias