ImageView에 대해 선언 한 setOnTouchListener를 인터럽트하려고합니다. 요점은 청취자를 멈추고 그것에 "리셋"하고, 사용자의 손가락이 스크린의 상단에 가까이있을 때, 나의 ImaeView Layout에도 있습니다.이벤트 이동 중 SetOnTouchListener 인터럽트
내 단계는 다음과 같습니다 이 -> OnTouchListener 만들기 -> 스토어 손가락 위치 -> 손가락이 화면 (100pixels)의 상단에 가까운 경우, 활동 레이아웃 XML 파일에서 기본값으로 이미지 뷰의 레이아웃을 재설정 , Listener를 인터럽트합니다. -> OnTouchListener를 다시 사용하려면 사용자가 손가락을 올려야합니다.
내 코드는 같다 :
이public void sendData(){
readyDeck();
}
손가락의 위치는 항상 : I 코드가 바로 이런 경우
private void readyDeck() {
// TODO Auto-generated method stub
backCard = (ImageView)findViewById(R.id.leader_backCardImg);
backCard.setVisibility(View.VISIBLE);
backCard.setAlpha(255);
backCard.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent me) {
int eid = me.getAction();
switch(eid){
case MotionEvent.ACTION_MOVE:
DisplayMetrics displaymetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
int height = displaymetrics.heightPixels;
RelativeLayout.LayoutParams mParams = (RelativeLayout.LayoutParams) backCard.getLayoutParams();
int y = (int) me.getRawY();
mParams.topMargin = y-height+(backCard.getHeight()/(1+(1/2)));
backCard.setLayoutParams(mParams);
int limit = backCard.getHeight();
if(y > limit){
mParams.topMargin = limit;
backCard.setLayoutParams(mParams);
}
else if(y < 255){
backCard.setAlpha(y);
if(y < 100){
backCard.setVisibility(View.GONE);
backCard.setOnTouchListener(null);
sendData();
break;
}
}
break;
default:
break;
}
return true;
}
});
}
같이 sendData() 메소드는 리스너를 다시 가지고 있지만, 우리가 화면에서 꺼낸 경우에도 저장되고 사용됩니다.
는 여기에서 로그 캣 ArrayList에의 한 임의의 항목을 제거하고, 것처럼하여, 같이 sendData() 메소드에서 일부 작업을 추가 할 볼 수 있습니다 : 우리는 리스너를 중지하지 않는 방법을 볼 수 있습니다
12-13 08:01:06.400: I/System.out(17171): s4 removed.New Size : 51
12-13 08:01:06.460: I/System.out(17171): h6 removed.New Size : 50
12-13 08:01:06.520: I/System.out(17171): h1 removed.New Size : 49
12-13 08:01:06.560: I/System.out(17171): c1 removed.New Size : 48
12-13 08:01:06.605: I/System.out(17171): hk removed.New Size : 47
12-13 08:01:06.630: I/System.out(17171): d9 removed.New Size : 46
12-13 08:01:06.655: I/System.out(17171): d2 removed.New Size : 45
12-13 08:01:06.695: I/System.out(17171): h2 removed.New Size : 44
12-13 08:01:06.730: I/System.out(17171): d8 removed.New Size : 43
12-13 08:01:06.760: I/System.out(17171): s10 removed.New Size : 42
12-13 08:01:06.800: I/System.out(17171): h7 removed.New Size : 41
12-13 08:01:06.830: I/System.out(17171): d6 removed.New Size : 40
12-13 08:01:06.850: I/System.out(17171): h9 removed.New Size : 39
12-13 08:01:06.900: I/System.out(17171): s6 removed.New Size : 38
12-13 08:01:07.250: I/System.out(17171): c4 removed.New Size : 37
12-13 08:01:07.275: I/System.out(17171): d3 removed.New Size : 36
12-13 08:01:07.300: I/System.out(17171): cv removed.New Size : 35
을 왜냐하면 데칼레이션이 끝난 직후 리스너는 boolen OnTouch()로 다시로드되기 때문입니다.
청취자를 방해하는 방법이 있습니까? 그리고 더 많은 것, 내 ImageView의 레이아웃을 재설정? 고맙습니다 !
귀하의 질문에 혼란 스럽습니다. 다시 말로 표현할 수 있습니까? 단계별로 단계별로 원하는 것을 말하고 잘못 될 수 있습니까? –
내 단계는 다음과 같습니다. -> OnTouchListener 만들기 -> 손가락 위치 저장 -> 손가락이 화면 상단 (100 픽셀) 근처에 있으면 작업 레이아웃 xml 파일에서 기본적으로 ImageView의 레이아웃을 재설정하고 인터럽트 그 듣는 사람. -> OnTouchListener를 다시 사용하려면 사용자가 손가락을 올려야합니다. 감사합니다. . – mickaelb91