Hola a todos hoy usaremos canvas en android studio con el cual haremos algunas figuras como ejemplo en este ejercicio.
NOTA: La clase Canvas representa una superficie donde podemos dibujar. Disponer de una serie de métodos que nos permiten representar líneas, círculos, texto, …Para dibujar en un Canvas necesitaremos un pincel (Paint) donde definiremos el color, grosor de trazo, transparencia.
Como Dibujar con Canvas en Android Studio (rectangulo circulo triangulo)
Contenidos
Vamos a suponer que sabes crear una nueva aplicación así que te pondré solo las clases que permiten dibujar pues solo es código java, en la parte gráfica no hay que tocar nada.
Dibujar un Circulo
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(new MyView(this)); } public class MyView extends View { public MyView(Context context) { super(context); // TODO Auto-generated constructor stub } @Override protected void onDraw(Canvas canvas) { // TODO Auto-generated method stub super.onDraw(canvas); int x = getWidth(); int y = getHeight(); int radius; radius = 100; Paint paint = new Paint(); // pintura o pincel paint.setStyle(Paint.Style.FILL); // el tipo de trazado // convertimos un color Hexa en un android.graphics.Color paint.setColor(Color.parseColor("#FF0000")); // pintamos un circulo rojo canvas.drawCircle(x / 2, y / 2, radius, paint); } } }
Dibujar un Rectángulo
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(new MyView(this)); } public class MyView extends View { public MyView(Context context) { super(context); // TODO Auto-generated constructor stub } @Override protected void onDraw(Canvas canvas) { // TODO Auto-generated method stub super.onDraw(canvas); Paint paint = new Paint(); // pintura o pincel paint.setStyle(Paint.Style.FILL); // el tipo de trazado // convertimos un color Hexa en un android.graphics.Color paint.setColor(Color.parseColor("#000000")); // pintamos un rectangulo negro canvas.drawRect(50, 50, 200, 200, paint); } } }
Dibujando un Triangulo
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(new MyView(this)); } public class MyView extends View { public MyView(Context context) { super(context); // TODO Auto-generated constructor stub } @Override protected void onDraw(Canvas canvas) { // TODO Auto-generated method stub super.onDraw(canvas); Path path = new Path(); path.moveTo(300, 400); path.lineTo(600, 400); path.lineTo(400, 50); Paint paint = new Paint(); // pintura o pincel paint.setStyle(Paint.Style.FILL); // el tipo de trazado // convertimos un color Hexa en un android.graphics.Color paint.setColor(Color.parseColor("#0040FF")); // pintamos un triangulo azul canvas.drawPath(path, paint); } } }
Revisando Código:
Para dibujar esta clase nos da ciertos parámetros para los diferentes tipos de figuras les dejare algunos como ejemplo:
por ejemplo para un punto seria:
canvas.drawPoint
Para dibujar un rectángulo
canvas.drawRect
Y así sucesivamente según la figura que se dese dibujar.
Les recomiendo que tomen cualquiera de los ejemplos de arriba e intenten hacer las figuras que faltan, recuerden que los colores están en hexadecimal, ustedes tranquilamente pueden obtener mas colores en las herramientas online que hay en san google.
paint.setColor : Se establece el color para pintar nuestras figuras
paint.setStyle: Nos permite hacer los diferente tipo de trazos
Esta claro que hay mas atributos, que sirven para otro tipo de ejercicios así que te dejo la documentación por si te interesa leer sobre esta clase
Hola soy Alex Céspedes fundador de ANDROFAST, programo algunas cosas por diversión, me gusta aprender cosas nuevas y estoy pendiente de todo lo que tenga que ver con tecnología. Este blog lo cree para todas las personas que tengan dificultades en la programación, para ser sincero nunca fui bueno y reprobé algunos cursos de programación, pero mis ganas de aprender pudieron más. SI YO PUEDO TU PUEDES ANIMO!