Andoid Touch Kullanımı ve Uygulaması

Merhaba Arkadaşlar bu yazımda Touch yani ekrana dokunduğumuzda dokunmamızı algılayacak ve dokunduğumuz yeri siyah renge boyuyalım.Touch ile ilgili kodlarımızı ayrı bir class’a yazarak oradan alalım.Burada tıkladığımız yerin x ve y kordinatlarını alarak o kordinatların yerini siyaha boyuyoruz.

CanTouchThis Class

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Path;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.View;

/**
* Created by Mesut on 07/04/15.
*/
public class CanTouchThis extends View{
private Paint paint = new Paint();
private Path path = new Path();
Context con;

public CanTouchThis(Context context, AttributeSet attrs) {
super(context, attrs);
con=context;
paint.setAntiAlias(true);
paint.setStrokeWidth(6f);
paint.setColor(Color.BLACK);
paint.setStyle(Paint.Style.STROKE);
paint.setStrokeJoin(Paint.Join.ROUND);
}

public CanTouchThis Clear(){

return new CanTouchThis(con,null);

}

@Override
protected void onDraw(Canvas canvas) {
canvas.drawPath(path, paint);
}

@Override
public boolean onTouchEvent(MotionEvent event) {
float eventX = event.getX();
float eventY = event.getY();

switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
path.moveTo(eventX, eventY);
return true;
case MotionEvent.ACTION_MOVE:
path.lineTo(eventX, eventY);
break;
case MotionEvent.ACTION_UP:
// nothing to do
break;
default:
return false;
}

// Schedules a repaint.
invalidate();
return true;
}
}

main

CanTouchThis mytouch;

// Burada uygulamamız çalışınca touch uygulamamızın çalışmasını sağladık.

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mytouch= new CanTouchThis(this, null);
setContentView(mytouch);

}

// Burada ise yukarıda çıkan seçeneklerden setting yazan menümüzü temizle olarak ismini değiştirip

//yada yeni menü ekleyerek bu kodu koyabiliriz.Aslında var olanı silmiyor yeni bir tane oluştuyor.

if (id == R.id.action_settings) {
mytouch= new CanTouchThis(this, null);

setContentView(mytouch );

return true;
}