DraggingView.java


Dosyayı İndir
package com.godoro.androidgraphics;

import android.content.*;
import android.graphics.*;
import android.view.*;

import java.util.*;

public class DraggingView extends View implements View.OnTouchListener {

    private Paint paint = new Paint();
    private List<Point> pointList = new ArrayList<Point>();
    private Path path=new Path();
    private boolean curved=true;
    private boolean renewing=false;

    public DraggingView(Context context) {
        super(context);
        setOnTouchListener(this);
    }

    @Override
    protected void onDraw(Canvas canvas) {
        if (pointList.size() == 0) {
            return;
        }
        if(curved){
            drawCurves(canvas);
        }else{
            drawLines(canvas);
        }
    }

    private void drawLines(Canvas canvas){
        Point from = pointList.get(0);
		for (int i = 1; i < pointList.size(); i++) {
			Point to = pointList.get(i);
			canvas.drawLine(from.x, from.y, to.x, to.y, paint);
			from = to;
		}

    }
    private void drawCurves(Canvas canvas){
        Point from = pointList.get(0);
        path.moveTo(from.x,from.y);
        for (int i = 1; i < pointList.size(); i++) {
            Point to = pointList.get(i);
            path.quadTo(from.x, from.y, to.x, to.y);
            from = to;
        }
        canvas.drawPath(path, paint);
    }
    @Override
    public boolean onTouch(View view, MotionEvent event) {
        if (event.getActionMasked() == MotionEvent.ACTION_DOWN) {
            pointList.clear();
            if(renewing){
                path=new Path();
            }
            pointList.add(new Point((int) event.getX(), (int) event.getY()));
        } else if (event.getActionMasked() == MotionEvent.ACTION_MOVE) {
            pointList.add(new Point((int) event.getX(), (int) event.getY()));
        } else if (event.getActionMasked() == MotionEvent.ACTION_UP) {
            pointList.add(new Point((int) event.getX(), (int) event.getY()));
        }
        invalidate();
        return true;
    }

}

				
Dosyayı İndir

Bu Sayfayı Paylaş:




Bu Sayfayı Paylaş:

İletişim Bilgileri

Takip Et

Her Hakkı Saklıdır. Bu sitede yayınlanan tüm bilgi ve fikirlerin kullanımından fibiler.com sorumlu değildir. Bu sitede üretilmiş , derlenmiş içerikleri, fibiler.com'u kaynak göstermek koşuluyla kendi sitenizde kullanılabilirsiniz. Ancak telif hakkı olan içeriklerin hakları sahiplerine aittir