2016-06-14 3 views
1

화면의 맨 아래에 정렬해야하는 ImageButton이 있습니다. 클릭하고 드래그하면 손가락으로 특정 거리만큼 이동합니다. 기점에서 더 이상 움직이지 않고 내 손가락이 원점에서 오는 방향을 따라 계속됩니다.버튼을 드래그/이동 한 후 원점으로 돌아 가기

내가 놓으면 단추가 원래 위치로 돌아 가야합니다. Moving buttons via Touch 그러나

, 내가 초기에있는 버튼의 출처를 얻을 방법은 내가 해제 후 다시 반송하기 위해 : 내가 지금까지 어떻게 관리해야 무엇

버튼이 응답을 통해 내 손가락을 따라하는 것입니다 ? 하단에 배치하는 | "중앙 하단"하지만 어떻게 든 (내 손가락에있는 버튼의 위치와 함께 놨 layout_gravity =이 :


원래 나는 안드로이드를함으로써 버튼의 정렬을 구현 내 손가락 움직임을 따르지만 중심에서 벗어난다.)

따라서 mButton.setY() 및 mButton.setX()를 사용하여 화면 맨 아래에 배치했지만 화면 크기를 사용하여 hackish로 배치 한 것 같습니다. 더 나은 방법을 생각할 수 없다.

답변

1

layout_widthlayout_height을 사용하여 레이아웃의 너비와 높이를 XML로 설정할 수 있습니다.

그런 다음 MainActivity에서 레이아웃을 인스턴스화하고 (예를 들어 LinearLayout을 사용) 폭과 높이를 가져옵니다. 버튼을 해제 할 때마다

LinearLayout l = (LinearLayout)findviewbyid(R.id.l1); 
int height = l.getHeight(); 
int width = l.getWidth(); 

지금, 당신은 다음과 같은 방법으로 위치를 설정할 수 있습니다

mButton.setY(height - 50) 

이이 레이아웃의 바닥 위하여 ImageButton 50 픽셀 위치합니다. 같은 방법으로 버튼의 위치를 ​​x으로 설정할 수도 있습니다. 또한 height - 50을 코드의 아무 곳에서나 호출 할 수있는 전역 변수 (origin)로 저장해야합니다.

관련 문제