2011-10-06 4 views
2

누군가 화면의 중간에 버튼의 이미지를 클릭 (보유)하면 배경을 변경하는 활동을 작성하려고합니다. 버튼을 놓으면 앱이 정상적인 배경으로 돌아갑니다.누군가가 안드로이드에서 특정 영역을 클릭했는지 감지하는 방법은 무엇입니까?

지금까지 '영역'앞에 버튼을 배치하여 가볍게 보이지 않게 설정했습니다.

더 좋은 방법이 있나요? 그 사람이 버튼을 놓을 지 여부를 감지 할 수있는 방법이 있습니까? (예를 누르면 버튼에 할 몇 가지 물건 발표 버튼은 다른 물건을 할 때)

감사

+0

당신이 중간 또는 빈 UI에 몇 가지보기를 유지하여 해당 작업을 수행하려면 ..? –

답변

0

NumberPickerButtonNumberPicker과 같은 것을 원하십니까?

버튼에 긴 클릭 (setLongClickable (true))을 사용 설정해야합니다. 그런 다음 action이 UP이면 onLongClick 이벤트와 onTouchEvent에 모두 응답하십시오.

귀하의 이벤트 핸들러의 모양은 다음과 같습니다

public boolean onLongClick(View v) { 
    changeYourBackground(); 
    return true; 
} 

public boolean onTouchEvent(MotionEvent event) { 
    if ((event.getAction() == MotionEvent.ACTION_CANCEL) 
     || (event.getAction() == MotionEvent.ACTION_UP)) { 
    putYourBackgroundBack(); 
    } 
    return super.onTouchEvent(event); 
} 
+0

오른쪽에 대해 들리지만, 그는 단지 onTouchEvent (MotionEvent 이벤트) 만 구현하고 MotionEvent.ACTION_DOWN 인 경우 changeYourBackground()를 수행하려고한다고 생각합니다. 그러면 이미지가 긴 클릭 지연 후에 즉시 변경됩니다. –

+0

만약 그가 그림을 당신이 묘사 한 방식대로 해줘야 만하는 것처럼 만져서 변화 시키길 원한다면. –

0
, 당신은 단지 이미지를 취할 수 canvas.In를 사용하여이 캔버스와 캐치의 중간에 표시 할 당신이 할 수있는

영역의 터치 이벤트, 이미지 커버. 그리고 사용자가 해당 영역을 터치하면 캔버스의 배경색을 변경합니다.

+0

나는 그가 만졌을 때 바뀌고 무언가가 눌려지면 원래대로 되돌아 갈 필요가 있다고 생각한다. ontouch 및 onrelease 인 두 이벤트와 함께 onTouch 리스너를 사용할 수 있습니다. 제대로 작동해야 정확한 안드로이드 코드를 모른다. –

관련 문제