2013-11-27 3 views
1

Android 4.0 이상의 앱에서 내장 된 WebView에서 CSS 크기를 지정하는 방법을 생각하고 있습니다. Android WebView : width = device-width 및 scale = 1.0 인 경우 CSS 픽셀은 항상 DIP와 동일합니까?

<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"> 
가 ... 다음 내용에있는 CSS 치수는 그 웹보기에로드 : 나는 (넥서스 4/7/10)를 테스트하고있어 세 개의 장치에, 내가 다음 뷰포트 지시어를 사용하는 경우 나타납니다 장치 독립적 픽셀과 정확히 동일합니다. 즉, 2560 개의 실제 픽셀 너비 인 Nexus 10에서 내 webview에서 너비가 1280 인 내용을 지정하면 화면 너비가 정확히 채워집니다.

내 CSS에서 장치 독립적 픽셀을 사용할 수 있다는 생각을 좋아하지만 이러한 DIP에서 정확한 사용 가능한 공간을 계산할 수 있어야합니다. 따라서 WebView에 1920 개의 실제 픽셀 너비가있는 경우 CSS 픽셀의 너비는 다음과 같아야합니다.

  • mdpi 디스플레이의 경우 1920 픽셀입니다.
  • hdpi 디스플레이에서 1280 픽셀.
  • xhdpi 디스플레이에서 960 픽셀.
  • xxhdpi 디스플레이에서 640px.

사실인가요? 물리적 < 변환 할 경우

답변

0

은 - 다음> DIP 픽셀을 당신은 window.devicePixelRatio (또는 DisplayMetrics)를 사용해야합니다 밀도 이름 (등 MDPI, hdpi에를 ..) 단순히 브라켓/카테고리합니다 - 두 장치 동일한 카테고리는 다른 devicePixelRatio 값을 가질 수 있습니다.

당신이하고있는 일에 대해서는 Pixel-Perfect UI in the WebView을 살펴 보는 것이 좋습니다.

+0

나는 그 페이지를 읽었으나 방금 재 방문했으며, 나는 나의 이해를위한 확인을 발견했다고 생각한다. "CSS"픽셀 "은 실제로 장치 픽셀 비율 (512px * 2 = 1024px)을 고려합니다." 또한 픽셀 비율과 관련하여 필자의 이해로는 실제 인치당 도트 수에 관계없이 모든 장치가 미리 정의 된 버킷 (1.0x, 1.5x, 2.0x 및 3.0x) 중 하나에 속하게됩니다. 그들이 제공하는 모든 예제는 그 중 하나를 사용하며 링크 된 사이트 (http://screensiz.es)는 해당 값만 표시합니다. –

+0

@BrianRak "모든 장치는 사전 정의 된 버킷 (1.0x, 1.5x, 2.0x 및 3.0x) 중 하나에 속합니다.": "이전"N7의 픽셀 비율은 1.33 ..입니다. 위 : –

+0

흥미 롭습니다. 사실, 1.33은 또한 "tvdpi"라는 사전 정의 된 버킷입니다. (http://developer.android.com/guide/topics/resources/providing-resources.html) Google은 주로 TV 용이므로 (그 이름) 적어도 기기가 항상 사용한다는 이론을 뒷받침하는 것으로 보인다. 미리 정의 된 버킷 다른 장치에서 더 많은 테스트를했는데 모두 미리 정의 된 버킷 중 하나와 정확히 일치하는 window.devicePixelRatio를보고했습니다. –