2
표면을 터치하면 객체를 움직이는 코드가 작성되어 멋지게 작동합니다. 길게 누르는 수신기에 삽입하면 터치 리스너가 제대로 작동하지 않고 객체가 움직이지 않더라도 터치합니다. . 대화 상자를 열려면 긴 클릭이 필요합니다. 생성에터치 리스너 및 길게 누르는 수신기
:
sf = new SurfaceView(this);
sf.setOnTouchListener(this);
sf.setOnLongClickListener(this);
롱 클릭에 :
public boolean onLongClick(View v) {
if (!changePositionMode){
final Dialog dialog = new Dialog(this);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.text_manager);
dialog.setTitle("Browser");
dialog.setCancelable(true);
dialog.show();
}
return false;
}
터치 리스너에이
public boolean onTouch(View v, MotionEvent event) {
Point p=new Point((int)event.getX(),(int)event.getY());
if (event.getAction()==MotionEvent.ACTION_DOWN){
}else if (object.isTouch(p)){
changePositionMode=true;
x=event.getX();
y=event.getY();
draw();
return true;
}
}
else if (event.getAction()==MotionEvent.ACTION_MOVE){
t.changeTamplatePosition(event.getX()-x,event.getY()-y);
x=event.getX();
y=event.getY();
draw();
return true;
}
else if (event.getAction()==MotionEvent.ACTION_UP){
changePositionMode=false;
}
return false;
}
touchClick 이벤트를 longClickListener에 전달하는 방법은이 답변을 참조하십시오. http://stackoverflow.com/questions/7387572/android-ontouch-with-onclick-and-onlongclick – Sanders
long click well? 터치 이벤트에 문제가 있습니까? –
문제는 터치 이벤트입니다. – tzahibs