2016-11-01 2 views
0

목록에 애니메이션이 적용된 Drawable 객체 (이미지)가 있습니다. 모든 객체에 onClickListener (또는 이와 비슷한)를 만들어 화면에서 사라지게하고 싶습니다. Drawable 객체는 비대화 형 요소라는 것을 읽었습니다.안드로이드의 Drawable 객체에 onClickListener를 추가하는 방법은 무엇입니까?

이 경우 어떻게 코드를 수정해야합니까? http://pastebin.com/jNzi3qux

+0

모든 'Drawable'을 반복하고 'MotionEvent' 좌표에 대한 좌표를 확인하십시오. 꽤 간단해야합니다. –

+0

문제가 있습니다. 각각의 스노우 플레이크를 추적하기 위해 별도의 클래스를 사용하여 운동을 추적하는 것이 더 쉽습니다. 또한'Drawable '대신'Bitmap'을 사용하면 캔버스를 번역 할 필요가 없습니다. –

답변

0

터치 포인트에 대한 각 눈송이 경계를 테스트하면됩니다. 얼마나 많은 눈송이를 가지고 있느냐에 따라 느려질 수 있으며,이 경우 쿼드 또는 kd 나무를 보길 원할 것입니다. https://en.wikipedia.org/wiki/K-d_tree. 그러나 그것은 조금 더 진보 된 것입니다.

@Override 
    public boolean onTouchEvent(MotionEvent event) { 
     for (int i = 0; i < snow_flake_count; i++) { 
      Drawable snowflake = drawables.get(i); 
      if(snowflake.getBounds().contains(event.getX(), event.getY()) 
      { 
       //Do whatever you need to do 
      } 
     } 
     return super.onTouchEvent(event); 
    } 
관련 문제