jueves, 29 de mayo de 2014

APLICACIÓN TRAZOS

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