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?
float x = event1.getX();
float y = event1.getY();
if(rect.contains((int)x, (int)y))
{
// touch in image
}
//where rect is rectangle of bitmap
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;
}
});
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.