게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
안드) 터치를 받지 않는 뷰에 홈 화면 강제터치 이벤트 제작가능하나요??
게시물ID : programmer_10794짧은주소 복사하기
작성자 : 빙티
추천 : 0
조회수 : 535회
댓글수 : 5개
등록시간 : 2015/06/03 23:42:04
옵션
  • 창작글
  • 본인삭제금지
안녕하세요! 반도의 흔한 고딩입니다!

제가 지금 (ImageView) mCursorView 를 만들고 있습니다!
이 뷰의 패라메터는

1
2
3
4
5
6
mParams = new WindowManager.LayoutParams(
    WindowManager.LayoutParams.WRAP_CONTENT,//w
    WindowManager.LayoutParams.WRAP_CONTENT,//h
    WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY,//_type
    WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH,//_flags
    PixelFormat.TRANSLUCENT);//_format
cs

입니다! 그렇기 때문에 홈 화면 위에 이 뷰를 띄우고
그 뷰를 누르는 등 터치이벤트를 주면, 그 뷰가 없는 것 처럼 홈화면이 반응하게 되는데요....

저는 여기에, 메크로 처럼
이 뷰의 위치에 dispatchTouchEvent()를 사용하여 강제로 터치이벤트를 발생하게 하려고 합니다!
그래서 저는 http://home.zany.kr:9003/board/bView.asp?bCode=91179649&aCode=2646 를 참고하여
다음과 같은 코드를 짰습니다!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
dispatchTouch(x, y);//(x,y)에 터치이벤트 발생
 
private void dispatchTouch(int x, int y){
    // Obtain MotionEvent object
    long downTime = SystemClock.uptimeMillis();
    long eventTime = SystemClock.uptimeMillis() + 100;
    
    int metaState = 0;
    MotionEvent motionEvent = MotionEvent.obtain(
        downTime, 
        eventTime, 
        MotionEvent.ACTION_UP, 
        x, 
        y, 
        metaState
    );
 
    // Dispatch touch event to view
    mCursorView.dispatchTouchEvent(motionEvent);//mParams를 갖고있는 위에서 언급된 그 뷰
}
cs

그런데 이게 웬일! 터치 이벤트가 발생하지 않는 것이었습니다!
dispatchTouch()는 잘 실행되고 있었음에도 강제터치가 먹히지 않는것을 보니,
제 생각엔 이 뷰 패라미터 특성상 터치이벤트를 뒤로 넘기게끔 하는 것 같아서 그런것 같습니다!


그렇가면, 어떻게 해야 mCursorView뒤에 있는 홈 화면으로 dispatchTouchEvent를 실행시킬 수 있을까요??
dispatchEvent를 뷰에다 하는건 많은데, 홈 화면에다 하는건 구글링 해도 나오지 않더락구요 ㅠㅠㅠ

답변 달아주시면 정말 감사드리겠습니다!!!
꼬릿말 보기
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호