2013-04-11 3 views
0

ImageView를 사용하여 화면에서 카메라 이미지 (일부 조작을 거친 후)를 보여주는 Android 용 앱을 만들고 있는데, 다른 ImageViews를 화면에서 이동할 수 있지만 부모 ImageView 내부에서만 움직일 수 있습니다.Android에서 다른보기를 기준으로보기 위치를 얻으려면 어떻게해야합니까?

또한 부모 ImageView의 좌표를 기준으로 자식 뷰의 좌표를 가져와야합니다. 즉 - (0,0)은 전체 화면이 아니고 카메라를 보여주는 ImageView입니다.

그럴 수 있습니까? 그렇다면 어떻게?

도움을 많이 받으실 수 있습니다! 감사합니다.

+0

좌표는 항상 ParentView – Triode

+0

을 기반으로하지만 이미지 뷰 안에 이미지 뷰를 넣어하는 것은 불가능합니다 - 따라서 내가 상대 좌표를 얻을 수 없다? – Roman

+0

달성하고자하는 것은 무엇입니까? – Triode

답변

0

여기를 드래그하여보기를 이동하려는 경우 많은 정보가 있습니다 (예 : Moving image with touch events). majorViewminorView 상대의 상단과 왼쪽을 얻기에 관하여는 일부 일반 빼기 minorViewRelativeTop = minorViewTop - majorViewTop에 간단 무엇

. 이러한 절대 위치를 얻으려면 View.getLocationInWindow()을 사용하십시오.

N.B. 그 View.getLocationInWindow()은 보통 Activity.onCreate() 내부에서 작동하지 않으므로 약간의 지연 후에 더 잘 호출됩니다. 이 STH 등이 될 수있다 테스트의 경우 :

majorView.postDelayed(new Runnable() { 
      @Override 
      public void run() { 
       int[] location = new int[2]; 
       majorView.getLocationInWindow(location); 
       int majorViewLeft = location[0]; 
       int majorViewTop = location[1]; 
      } 
     }, 1000); 
관련 문제