
↑ avd에서 사용시
↓ 겔럭시Note에서 사용시

현재 위 처럼 android layout를 하고 있는데여
상대배치를 해야 해서 짜증이 나네요 ㅠㅠ
현재 아래처럼 해서 레이아웃을 사용하고 있습니다
60 도 마다 cd모양을 배치하고 아래 수식에 따라 계산을 하면 저렇게 되거든요
radius는 지금 float radius = 167.0f; 입니다
다른곳에서는 잘 되는데 겔럭시Note 에서는 화면이 커서 따로 노네여...
아마도 다른 모바일은 화면이 작아서 거의 비슷하게 에뮬이랑 맞는데 겔노트는 잘 안맞네여...
해결 방안이 있을까여??
deviceWidth = displayMetrics.widthPixels / 2 ;
deviceHeight = displayMetrics.heightPixels / 2;
float heightRevision = (float)((64 / 0.66625)*-1)/2;
float widthRevision = (float)((64 / 0.66625)*-1)/2;
slideHandleButton.setY((float) (displayMetrics.heightPixels*0.4));
img1.setX((float) (deviceWidth + radius * Math.cos(Math.toRadians(angle1)))+heightRevision);
img1.setY((float) (deviceHeight + radius * Math.sin(Math.toRadians(angle1)))+widthRevision);
img2.setX((float) (deviceWidth + radius * Math.cos(Math.toRadians(angle2)))+heightRevision);
img2.setY((float) (deviceHeight+ radius * Math.sin(Math.toRadians(angle2)))+widthRevision);
img3.setX((float) (deviceWidth + radius * Math.cos(Math.toRadians(angle3)))+heightRevision);
img3.setY((float) (deviceHeight+ radius * Math.sin(Math.toRadians(angle3)))+widthRevision);
img4.setX((float) (deviceWidth + radius * Math.cos(Math.toRadians(angle4)))+heightRevision);
img4.setY((float) (deviceHeight+ radius * Math.sin(Math.toRadians(angle4)))+widthRevision);
img5.setX((float) (deviceWidth + radius * Math.cos(Math.toRadians(angle5)))+heightRevision);
img5.setY((float) (deviceHeight+ radius * Math.sin(Math.toRadians(angle5)))+widthRevision);
img6.setX((float) (deviceWidth + radius * Math.cos(Math.toRadians(angle6)))+heightRevision);
img6.setY((float) (deviceHeight+ radius * Math.sin(Math.toRadians(angle6)))+widthRevision);
displayMetrics.widthPixels 이거하고 이 밑에 값은
아시다 시피 디바이스의 값을 구하는 경우 입니다
그렇기 때문에 그 반을 나누면 중간이 되고 중간에서 부터 60도 씩 배치시키라는 것이니
제가 의도한 바에는 일치한다고 생각 합니다 : )
아이폰과 안드로이드 어플을 개발하면서 짜증났던 부분이죠.
아이폰으로 이미 나온 어플이었기 때문에 안드로이드로 만들때 레이아웃 문제가 굉장히 골치아팠는데,
확 짜증나서 relative layout 을 상속해서 custom layout 을 만들고 아이폰의 레졸루션을 그대로 입력하면 화면 비율에 맞게 계산해서 재배치 해주는걸 만들었... xml에선 left margin, top margin, width, height 로 아이폰의 xib와 똑같이 만들어주고...
의외로 잘 나오더군요. 위아래 공백이 생기는데 이건 lefttop, rightbottom pixel의 색을 읽어서 배경색으로 하는걸로..




Ratio가 안맞으면 저렇게 될 수도 있지 않을까요?
노트의 경우 1280 / 800 = 1.6 비율이고
보통의 경우 800 / 480 = 1.66666666666666 비율이니 말이죠..
deviceWidth = displayMetrics.widthPixels / 2 ;
deviceHeight = displayMetrics.heightPixels / 2;
요 값들이 원하는 값인지도 궁굼하네요 ^^