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. 미안하지만, 정적 위젯으로 이미 무게 접근법을 사용하고 있다고 언급하는 것을 잊어 버렸지 만, 제 질문은 동적 생성 위젯에 관한 것입니다. 프리 태블릿
- GridLayout에서 전화
- 페이지 당 4 개 행을 표시하는 5 % 패딩
- 에 종횡비 이미지 뷰와 이미지 뷰 모든 장치. 당신은 그럼 그냥 디스플레이 크기 & 계산이의 %를 원하는 얻을 같은 화면 %가 필요한 경우
왜 모든 장치에서 같은 너비의 비율이 필요한지 조금 더 자세히 설명해 주시겠습니까? UI의 다른 비트의 너비와 일치 시키려고합니까? 당신이 부과해야하는 너비 제한을 제거 할 수있는 여러 가지 방법이있을 수 있습니다. – steeveeet
예를 들어 Landscape Tablet에 5 개의 열을 표시하는 gridlayout과 PhoneView 또는 ImageView의 페이지 당 4 개의 행을 표시하는 scrollview가 있으면 모든 장치에서 동일한 패딩 비율을가집니다. –