В моем коде onLongPress работает в полноэкранном режиме, но мне нужно onLongPress в определенную относительную компоновку. После получения значений X и Y в LongPress, я должен выполнить некоторые действия в событии onLongPress.Как установить onLongPress для определенного относительного макета с помощью GestureDetectorCompat?
public class MainActivity extends ActionBarActivity {
private GestureDetectorCompat mDetector;
public Bitmap bitmap;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mDetector = new GestureDetectorCompat(this, new MyGestureListener());
final RelativeLayout relativeLayout = (RelativeLayout) findViewById(R.id.myView);
}
@Override
public boolean onTouchEvent(MotionEvent event){
this.mDetector.onTouchEvent(event);
return super.onTouchEvent(event);
}
public void message(Context ctx,String msg,int duration) {
Toast.makeText(ctx, msg, duration).show();
}
private class MyGestureListener extends GestureDetector.SimpleOnGestureListener {
@Override
public void onLongPress(MotionEvent e) {
float x = e.getX();
float y = e.getY();
message(getBaseContext()," X value is " + x + " Y value is "+ y ,Toast.LENGTH_SHORT);
super.onLongPress(e);
}
@Override
public boolean onSingleTapConfirmed(MotionEvent e) {
message(getBaseContext(),"Single tab" ,Toast.LENGTH_SHORT);
return super.onSingleTapConfirmed(e);
}
}
}
так кормите детектор с MotionEvent – pskink
@pskink этого компоновщика могли бы вы отредактировать мой код? –
nope, вместо этого прочитайте об обработке MotionEvent в представлении: guide/themes/ui/ui-events.html – pskink