2009-12-12 6 views
3

Android에서는 res 디렉토리의 이름을 적절히 지정하여 각기 다른 전화 속성에 대해 서로 다른 자원을 정의 할 수 있습니다. 480x800480x854에 대해 다른 레이아웃을 지원할 수 있어야합니다. 나는 layout-hdpi-v4 디렉토리에 저장된 자원과 layout-long-hdpi-v4에 저장된 자원을 가질 수 있다고 생각했습니다. 그러나 두 해상도 모두 길다는 생각이 드는 것 같습니다 (적어도 에뮬레이터를 기반으로합니다.이 장치는 장치를 정확하게 반영하지 않을 수도 있음).Android에서 화면 해상도를 오래 정의하는 방법은 무엇입니까?

2 가지 해상도/종횡비를 구별 할 수있는 또 다른 방법이 있습니까?

답변

3

하는 screen size qualifier 있습니다 :

layout-800x480 자원 이름에 지원하는 방법이처럼은 보이지 않는다, 그렇지 않으면 layout-854x480

그 수 유연한 레이아웃을 사용하여 추가 화면 공간으로 확장하는 것 외에도 두 가지 해상도를 구별합니다.

+0

참고로, hdpi 한정자는 단독으로 res 한정자보다 우선합니다. 따라서이 권장 경로를 따르기로 결정하면 layout-hdpi-854x480으로 만들어야합니다. 답변 해주셔서 감사합니다. – user230317

2

당신이 코드에서 화면 크기를 결정하려면, DisplayMetrics

DisplayMetrics metrics = new DisplayMetrics(); 
getWindowManager().getDefaultDisplay().getMetrics(metrics); 

당신은 필드 widthPixelsheightPixels 볼 수 있습니다 도움이 될 것입니다.

그러나 Best Practices for Screen Independence도 읽어보십시오. 그것의 사용은 사용되지 않으며 사용하지 않는 것이 좋습니다 있지만

+0

나는 그 모든 것을 잘 알고 있습니다. 보기를 바닥에 정렬해야하는 iPhone 앱을 이식하는 고유 한 경우입니다. 동시에 배경 레이아웃을 다른 종횡비로 조정하지 않으려면 내 레이아웃을 480x800 화면보다 오래 확장해야합니다. 그렇지 않으면 layout_alignParentBottom을 사용하면 트릭을 수행 할 수 있습니다. – user230317

관련 문제