2011-10-25 4 views
2

특히 HDPI 섹션에서 불규칙한 레이아웃의 Android 기기가 점점 더 늘어나고 있습니다.레이아웃이 불규칙한 Android HDPI 기기

문제는 내 xml 레이아웃에서 DIP 값만 사용하더라도 복잡한 레이아웃이 올바르게 확장되지 않는다는 것입니다. 애니메이션은 float 값을 TransformAnimation 코드 내에서 사용하기 때문에 특히 문제가됩니다.

예를 들어 안드로이드 표준 해상도로 3.7 인치 스크린이있는 240dpi 전화가 있습니다. 이 장치의 HDPI와 대형 레이아웃을 만들 수 있으며 모든 디자인과 미학을 완벽하게 맞출 수 있습니다.

그렇다면 4.2inch의 전화가 있지만 수직 해상도는 여전히 XHDPI 또는 XLARGE 미만입니다. 장치에 DPI가 무엇인지 물으면 240dpi도보고합니다. 불행히도 사실은 다른 화면 비율, 실제로 다른 화면 크기 및 실제로 다른 해상도로 인해, 내 레이아웃이 정확하게 확장되지 않습니다. 또한 장치는 layout-large 및 hdpi라고 잘못 선언하기 때문에 별도의 레이아웃 폴더를 만들 수 없습니다. (EVO 둘 다, 다른 여러 개의 "긴"전화기) layout-long-large과 다른 종류의 조합을 사용할 수있는 것 같은 안드로이드 설명서를 읽었지 만 전화 자체는 여전히 레이아웃이 크다고 생각합니다. long 한정자는 자체에 대한 적절한 정보를보고하는 장치에서 작동합니다.

코드에서 수행하지 않고 사람들이 Android 프레임 워크에서 어떻게 처리합니까? 그것은 나를 위해 매우 지루한 작업이 될 것이고 하드웨어가 그 자체에 대한 모든 정보를 잘못보고하는 경우 어떻게 동적으로 수행 할 수 있는지에 대한 질문이 있습니다.

통찰력을 바랍니다.

답변

0

이 문제의 해결책은 RelativeLayout의 위치에 점점 더 의존하는 것입니다.

0

이 문제를 해결하는 한 가지 방법은 앱이 시작할 때마다 사용자 에이전트를 서버로 전송하는 것입니다. 그런 다음 서버는 사용할 올바른 이미지를 결정하고 해당 이미지를 표시하는 클라이언트에 정보를 보냅니다. 이것은 다른 모바일 플랫폼에서도 마찬가지입니다. 안드로이드가 문제를 제기하는 것처럼 보입니다. 이걸 시험해 봐.

또한 9- 경로 이미지 사용을 고려해 보셨습니까?

+0

나는 그것을 고려해 보았으나 9- 패치 이미지는 어떤 이점이 있을까요? – CQM

1

대상 프레임 워크는 무엇입니까? API 대상이 9 이상이 아니면 장치가 xhdpi로보고하지 않습니다.

+1

매니페스트에서 API 타겟 10으로 올라가려고했는데보고 변경에 아무런 영향이 없었습니다. xlarge 화면은 최소 960dp x 720dp입니다. 이 전화 (EVO 4g, Evo 3d, 기타)는 960 x 540 dp입니다. 그것은 4 인치 스크린이지만'getResources() .displayMetrics() .densityDpi' 함수를 사용하여 240dpi로보고합니다. 따라서 분명히 다른 경우 layout-large와 drawable-hdpi에 응답합니다. Google T-Mobile G2는 레이아웃 크기가 크고 drawable-hdpi 인 3.7 인치 240dpi 화면, 800x480 화면입니다. 다른 비표준 장치가 나올 가능성이 있기 때문에 하드 코딩 해상도가 좋지 않습니다. – CQM