2013-04-24 5 views
0

하모니카 계기판을 표시하고 일부는 클릭 할 수있는 안드로이드 게임 앱을 개발 중입니다.Android 동적 배치 레이아웃

일부 부분을 클릭 할 수 있고 그림 크기에 따라 동적으로 배치해야하는 악기의 전체 너비 사진 (높이가 그에 따라 조정 됨)을 보여주고 싶습니다.

문제는 레이아웃 요소를 사용하여이를 달성하는 방법을 모르기 때문에 다른 화면 크기의 장치에서 렌더링 할 수 있다는 것입니다. 어떤 레이아웃을 사용해야합니까?

계측기를 ImageView 또는 레이아웃의 백그라운드로 표시하고이를 맞추는 방법은 무엇입니까?

어쨌든 버튼을 그림의 너비와 높이에 상대적으로 배치합니까? 또는 프로그래밍 방식으로 수행해야합니까? 구멍이 커지거나 작아지면 너비와 높이가 달라져야합니다.

나는 안드로이드 레이아웃에 대한 많은 경험이 없으며이를 수행하는 방법에 전적으로 매달렸다.

enter image description here

내가 다른 장치에서 사진 크기 변경 비록 구멍이 클릭 할 수 있도록 원하는 :

악기의 샘플 사진입니다.

모든 제안이 도움이 될 것입니다.

답변

2

ImageView에는 이미지의 크기 조정 방법을 제어하는 ​​내부 Matrix이 있습니다.

이 매트릭스를 가져 와서 반전시켜 스케일 된 이미지의 터치를 원본 이미지의 좌표로 변환 할 수 있습니다.

float[] xy = new float[]{x, y}; // the xy from the touch event 
Matrix inverse = new Matrix(); 
imageView.getImageMatrix().inverse(inverse); 
inverse.mapPoints(xy); // xy now contains the coordinates of the click in the original image 

지금 당신이 할 필요가 각 음의 위치에 대한 몇 가지에 저장된 값과 일치 xy입니다.

+0

더 설명해 주시겠습니까? 아무 것도 얻지 못했습니다 :) – Ali

+0

그가이 코드 조각으로 이미지를 패닝하여 ontouch 이벤트를 만들고 x 및 y를 얻으려고합니다. –

+0

회전 할 때이 작업을 시도했습니다. 전화 및 터치 이미지의 동일한 장소, 그것은 다른 좌표를 제공합니다. – Ali

관련 문제