2012-01-18 3 views
8

호환 기기과 다른 화면 크기 (태블릿 및 스마트 폰)는 버전 2.3, 3.2 및 4.0으로 프로그래밍해야합니다. 나는 res/layout-sw600dp /와 같은 레이아웃의 폴더 이름을 알 수 있습니다. 레이아웃을 다른 화면 크기와 정확하게 일치시킵니다.다른 버전의 Android 용 앱 레이아웃이 서로 다른 경우

태블릿/스마트 폰에 대해 다른 레이아웃으로 을 완전히 사용 하겠지만, Android 버전이 사용되고 태블릿 또는 스마트 폰 장치가 사용되는지 테스트하는 '로드 스크린'부터 시작하겠다. 예를 들어 태블릿의 레이아웃에서 원인이되는 일부 화면에는 스마트 폰에없는 버튼이 있습니다.

그래서 나는 다음과 같이 패키지로이 모든 것을 분리해야합니다 :

  • 공통
  • 2.3
    • 태블릿
    • 스마트 폰
  • 3.2
    • 태블릿
    • 스마트 폰
  • 4.0
    • 태블릿
    • 스마트 폰 나는, 내 생각에 가장 좋은 방법 원인이 분리를 선택할 것

      에 대비하기 위해

다가오는 * 업데이트 *, 필요한 경우 Android 4.0의 ToolBar에 Button을 추가 할 수 있습니다.

이 분리는 좋은 의견입니까, 아니면 과부하입니까?

알고 있어야하는 4.0의 새로운 기능이 있습니까?

답변

15

당신은 또한 분리에 대한 질문에 대해서는 표시하는 버전 번호 (같은 /res/layout-v11) 또는 (/res/values-v13)

을 리소스 폴더의 이름을 지정할 수 있습니다 경우에 귀하의 레이아웃을 설정할 수 있습니다 버전을 기반으로 - 귀하의 특정 요구 사항에 따라 다릅니다. 이 문제에 대한 일반적인 접근 방식은 폴백 (fall-back) 메커니즘입니다. 몇 가지 구체적인 레이아웃 (예 : xlarge landscape v11 레이아웃)과 몇 가지 일반적인 레이아웃을 제공합니다.

물론 이것은 "이상적인"해결책입니다. 그런 식으로 항상 작동하지는 않습니다. 다른 말로하면 대체 리소스를 제공함으로써 많은 버전의 Android와 호환되는 앱을 실제로 구현하는 것이 어려울 수 있습니다. 호환성 라이브러리를 사용하더라도 (버전 별 코드를 줄이는 데 조금 도움이 됨); 런타임에 버전을 기반으로 코드를 수정해야합니다.

6

Build.VERSION을 보는 Android 버전을 확인할 수 있습니다.

문서에서는 Build.VERSION_CODES의 값에 대해 Build.VERSION.SDK_INT를 확인하는 것이 좋습니다.

그리고 당신은 다른 조건

+0

감사합니다. – 10ff

관련 문제