화면 사이즈 별 터치 좌표 설정 하기
->
현재 나와있는 안드로이드 폰은 변태폰을 제외하고 비율은 일정합니다.
변태폰까지 지원하려면 해당폰이 기존해상도비율을 벋어날 경우 그 부분만 따로 처리하시면 됩니다.
기본 비율은 겔럭시 s모델이나 넥서스의 기본 해상도인 800 * 480을 기본으로 잡습니다.
(화면 비율 측정하는 준비과정)
>LandScape모드입니다.
WindowManager wm = getWindowManager();
height = wm.getDefaultDisplay().getHeight();
width = wm.getDefaultDisplay().getWidth();
Htemp = (double) height / 480;
Wtemp = (double) width / 800;
이것을 넣어줍니다.
double로 강제 케스팅 한이유는 height/480이 0.xxx인 경우가 있습니다.
만약에 이것이 int형으로 받아진다면 당연히 배율은 0이되어버립니다.
따라서 소수점표현 가능한 double로 합니다.
(더 자세하게 하고 싶으면, float으로 하셔도됩니다.)
가장 작은 HVGA의 경우 겔럭시나 넥서스 해상도에서 0.66 / 0.6배만큼 입니다.
따라서 겔럭시에서 480의 좌표는 HVGA를 가진 폰에서는 화면밖을 인식해버립니다.
이 경우에는 찍은 좌표에서 위의 해상도 배율만큼 곱해버리면 원하는 위치에 잡히게 됩니다.
480에 0.6배면 대략 320정도 됩니다.
이때 중요한건 곱할때도 double형이나 float형으로 곱하셔야됩니다.
480의 좌표는 (int)(480.0*Htemp)로 하셔야 제대로 잡힙니다.
현재 표준으로 제시된것은 총 7종류이며, 이 외의 해상도는 변종이므로 그냥 지원모델에서 빼버리면 됩니다.
또한 이미지 크기도 동일합니다.
9patch 작업을 끝내신 이미지크기는 800 * 480을 기준으로 맞추시던지, 아니면 다른 표준 해상도로
기준을 잡으시고, 위의 배율대로 곱하시면 됩니다.
[이 게시물은 더어플님에 의해 2016-07-12 15:23:56 개발 꿀팁에서 복사 됨]