package com.TRAZOS_LRV.trazos;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Path;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
@SuppressLint("DrawAllocation")
public class MainActivity extends Activity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
VistaGrafica VGrafica = new VistaGrafica(this);
setContentView(VGrafica);
}
private class VistaGrafica extends View{
//posicion del trazo
float X=100;
float Y=100;
//el tipo de evento
String TipoEvento="Ninguno";
//objeto para llevar acabo el trazo
Path path= new Path();
//constructor para mi vista (solo hace lo que su superclase)
public VistaGrafica(Context contexto){
super(contexto);//aqui trabaja el constructor de la superclase
}
@SuppressLint("DrawAllocation")
@Override
protected void onDraw(Canvas canvas){
//el constructor de la superclase hace su trabajo
super.onDraw(canvas);
//preparo el lapiz para el trazo
Paint paint = new Paint();
paint.setStyle(Paint.Style.STROKE);
paint.setStrokeWidth(6);
paint.setColor(Color.BLUE);
//fijo el primer punto
if(TipoEvento=="down"){
path.moveTo(X,Y);
}
//fijo el segundo punto del trazo
if(TipoEvento =="move"){
path.lineTo(X,Y);
}
//Trazo la linea
canvas.drawPath(path,paint);
//suavizo bordes de los gráficos
paint.setAntiAlias(true);
}
public boolean onTouchEvent(MotionEvent evento){
//capturo la posicion del touch
X= evento.getX();
Y= evento.getY();
if (evento.getAction()== MotionEvent.ACTION_DOWN){
TipoEvento="down";
}
if (evento.getAction()== MotionEvent.ACTION_MOVE){
TipoEvento="move";
}
invalidate();
return true;
}
}
}
No hay comentarios:
Publicar un comentario