XY düzlemi oluşturma.
Arkadaşlar selamlar, onTouchListener ve MotionEvent kullanarak ekrandan dokunma ve koordinat bilgisi alıyorum fakat, tabiki ekrandan gelen koordinatlar. Ben ekran da bir XY düzlemi oluşsun ve ona göre koordinat alayım istiyorum ve bu sayede ortaya bir polygon şekli çıkarıp, alanını hesaplamayı planlıyorum. Bu konuda bir tecrübsei ya da fikri olan var mı ? Kullandığım kod :
[code]import java.util.ArrayList;import java.util.List; import android.app.Activity; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.Paint.Style; import android.graphics.Point; import android.os.Bundle; import android.view.MotionEvent; import android.view.SurfaceHolder; import android.view.SurfaceView; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(new DrawingView(MainActivity.this)); } class DrawingView extends SurfaceView { private SurfaceHolder surfaceHolder; private final Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG); private List<Point> pointsList = new ArrayList<Point>(); public DrawingView(Context context) { super(context); surfaceHolder = getHolder(); paint.setColor(Color.BLACK); paint.setStyle(Style.FILL); } @Override public boolean onTouchEvent(MotionEvent event) { if (event.getAction() == MotionEvent.ACTION_DOWN) { if (surfaceHolder.getSurface().isValid()) { // Add current touch position to the list of points pointsList.add(new Point((int) event.getX(), (int) event.getY())); // Get canvas from surface Canvas canvas = surfaceHolder.lockCanvas(); // Clear screen canvas.drawColor(Color.WHITE); // Iterate on the list for (int i = 0; i < pointsList.size(); i++) { Point current = pointsList.get(i); Point first = pointsList.get(0); // Draw points canvas.drawCircle(current.x, current.y, 5, paint); // Draw line with next point (if it exists) if (i + 1 < pointsList.size()) { Point next = pointsList.get(i + 1); canvas.drawLine(current.x, current.y, next.x, next.y, paint); canvas.drawLine(next.x, next.y, first.x, first.y, paint); c } } // Release canvas surfaceHolder.unlockCanvasAndPost(canvas); } } return false; }[/code]
Teşekkür ederim.