2014-02-24 1 views
2

I는 (PX = DP를 이용하여, 50dp으로 DPI를 위젯을 배치 할 경우 나 UI 위젯 크기를 가진 하나의 문제, 예를 들어 아래의 (2 개) 장치를 참조사이즈 위젯 동등 (XML 방식 만)

1.) Samsung Galaxy Tab 2 7" 
- Pixels : 1024x600 (mdpi) 
- DPI : 160 
- Density : 1.0 
2.) Samsung Nexus 10 2013 
- Pixels : 2560x1600 (xhdpi) 
- DPI : 320 
- Density : 2.0 

을 100 픽셀 중 3.9 % 인 반면/160)는 "넥서스 10위한 및 100 픽셀. 그러나 백분율의 관점에서, 50 픽셀은 탭 7에서 화면 폭 4.88 % 이상이다"탭 7 50 픽셀 것 Nexus 10 화면 너비

하지만 위젯이 같은 너비 비율로 표시되어야합니다. 그래서 2 가지 옵션을 생각해 냈습니다.

A. 실제 픽셀을 가져 와서 백분율을 적용하여 런타임에 계산 한 다음 위젯의 크기를 조정하십시오.

B. 다른 xml 파일 (내 경우에는 sw600dp 및 sw700dp)에 크기와 위치를 계산하여 < dimen>에 넣으십시오.

현재로서는 옵션 A를 사용하여 크기를 계산하고 런타임에 설정합니다. 그것은 잘 작동하지만 계산이 성능에 영향을 줄 수 있습니다. 옵션 B를 선택하면 모든 화면에서 모든 위젯의 크기를 계산해야합니다 (탭 7 "의 경우 50dp이고 Nexus 10의 경우 62.5dp는의 4.8 %가됩니다). 그러나이 값을 변경하려면 나중에 또는 일부 제조업체가 차이 DPI 또는 픽셀 (상상해보십시오, hdpi 해상도의 7 인치 태블릿, 1.5 밀도, 240 DPI)을 사용하는 새로운 장치를 도입하면 모든 계산을 다시하고 업데이트하거나 새로운 xml을 다시 제공해야합니다.

그래서 내 질문은 성능을 저하시키지 않고 장래에 많은 수작업 계산을 고려하지 않는 옵션 C가 있습니까?

P. 미안하지만, 정적 위젯으로 이미 무게 접근법을 사용하고 있다고 언급하는 것을 잊어 버렸지 만, 제 질문은 동적 생성 위젯에 관한 것입니다. 프리 태블릿

  • ScrollView있는 5 열을 나타내는 예를 들어,

    • GridLayout에서 전화
    • 페이지 당 4 개 행을 표시하는 5 % 패딩
    • 에 종횡비 이미지 뷰와 이미지 뷰 모든 장치. 당신은 그럼 그냥 디스플레이 크기 & 계산이의 %를 원하는 얻을 같은 화면 %가 필요한 경우
  • +1

    왜 모든 장치에서 같은 너비의 비율이 필요한지 조금 더 자세히 설명해 주시겠습니까? UI의 다른 비트의 너비와 일치 시키려고합니까? 당신이 부과해야하는 너비 제한을 제거 할 수있는 여러 가지 방법이있을 수 있습니다. – steeveeet

    +0

    예를 들어 Landscape Tablet에 5 개의 열을 표시하는 gridlayout과 PhoneView 또는 ImageView의 페이지 당 4 개의 행을 표시하는 scrollview가 있으면 모든 장치에서 동일한 패딩 비율을가집니다. –

    답변

    1

    DP 스크린 %

    의 크기가 모든 장치에서 거의 동일하지 않습니다. 그런 다음 동적으로 위젯에 적용하십시오.

    +0

    고마워요,하지만 그건 이미 제 선택 사항 A입니다 (제 현재 해결책입니다). –