Reputation: 2856
I have this function:
@Override
public boolean onTouchEvent(MotionEvent event1)
{
if(event1.getAction()==MotionEvent.ACTION_DOWN){
if(!player.getPlaying() && newGameCreated && reset)
{
player.setPlaying(true);
player.setUp(true);
}
if(player.getPlaying())
{
if(!started)started = true;
reset = false;
player.setUp(true);
}
return true;
}
if(event1.getAction()==MotionEvent.ACTION_UP)
{
player.setUp(false);
return true;
}
return super.onTouchEvent(event1);
}
This function will do it on full screen.
But how do i make it only for when my bitmap is touched?
Upvotes: 0
Views: 823
Reputation: 1984
You could implement the parent layout touch and pass it to your view (where you binded your canvas) as child layout. You could follow as per below :
1) Implement parent layout touch event
yourparentlayout.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
// this method will pass your parent touch to your canvas parent view
canvasparent.dispatchTouchEvent(event);
return true;
}
});
2) Implement onTouch listener to your canvasparent
canvasparent.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
Rect viewRect = new Rect();
yourimageview.getGlobalVisibleRect(viewRect);
if (!viewRect.contains((int) event.getRawX(), (int) event.getRawY())) {
Log.d("Touch : "," Touching Outside Of your canvasparent");
}else{
Log.d("Touch : ","Touching Inside Of your canvasparent");
}
return false;
}
});
Upvotes: 1
Reputation: 1559
float x = event1.getX();
float y = event1.getY();
if(rect.contains((int)x, (int)y))
{
// touch in image
}
//where rect is rectangle of bitmap
Upvotes: 1