2013-12-09 6 views
4

이동 중이거나 XY 위치가 변경되면보기에서 XY 좌표를 수신하려면 어떻게합니까? 뷰를 드래그 (또는 사용자 터치 이벤트) 할 필요는 없습니다. 방향이 바뀌거나 키보드 등으로 푸시 (위로)하면 변경 될 수 있습니다. 변경된 XY 좌표를 알고 싶습니다. 어떻게해야합니까? 그렇게?보기가 XY 위치를 변경하면보기를 청취하십시오.

+0

[onPreDrawListener] (http://developer.android.com/reference/android/view/ViewTreeObserver.OnPreDrawListener.html) 또는 [onGlobalLayoutListener] (http://developer.android.com/reference/)를 사용할 수 있습니다. android/view/ViewTreeObserver.OnGlobalLayoutListener.html)를 사용하여 위치 변경 내용을 수신합니다. – Wenhui

답변

7

당신이 도움이

final View activityRootView = findViewById(R.id.mainLayout); 
     activityRootView.getViewTreeObserver().addOnGlobalLayoutListener(
       new OnGlobalLayoutListener() { 

        @SuppressLint("NewApi") 
        @Override 
        public void onGlobalLayout() { 
         findViewById(R.id.textView).getX(); 
         findViewById(R.id.textView).getY(); 

        } 
       }); 

희망 같은 것을 할 수 있습니다.

+6

비싼 작업이기 때문에 onGlobalLayout (또는 여러 번 호출되는 다른 메서드!) 내에서 findViewById를 호출하면 안되며 한 번만 수행하면됩니다. – Reza

관련 문제