2012-01-01 2 views
0

나는 DOM이 준비되면 자바 스크립트로 실행되는 일부 HTML을 표시하기 위해 안드로이드의 webview를 사용하고있다. 하지만 screen.width는 에뮬레이터와 실제 장치에서 쿼리하기 전에 시간 제한을 사용하지 않는 한 잘못된 값을 제공합니다.안드로이드 webview 자바 스크립트 버그

고/저밀도 장치에 문제가 있습니다. 예를 들어, 고밀도 480 X 800 크기의 장치는 320 x 533 (화면 폭과 높이를 둘 다 1.5로 나눕니다)의 결과를 가져오고 저밀도의 크기 240x320의 화면에서는 320x426을 제공합니다 (다시, 폭과 높이 모두 0.75).

본문의 너비를 320px로 설정하고 다시 설정하는 중이므로이 시간을 480px의 실제 크기로 설정하기 때문에 일부 CSS를 적용하고 본문의 너비를 100 %로 설정하면 깜박입니다. 일부 CSS를 적용하기 전에 화면의 폭과 높이를 조회 할 타이머를 사용

다른 장치에 있기 때문에, 서로 다른 시간 간격이 (이 300ms, 500ms로) 필요하다, 받아 들일 수 - 내가 적용 할 수있는 방법을 다른 화면으로 CSS가 크기

에뮬레이터 :

FWQVGA (240×432, low density, normal screen) 
HVGA (320×480, medium density, normal screen) 
WVGA800 (480×800, high density, normal screen) 

이 문제를 해결할 수있는 방법이 있습니까?

+0

http://developer.android.com/reference/android/webkit/WebView.html @. 더 많은 정보를 찾을 수 있었습니까? – zaf

답변

2

기본적으로 WebView는 중간 밀도 화면의 기본 모양과 일치하는 크기로 그려 지도록 웹 페이지의 크기를 조정합니다. 따라서 고밀도 화면 (픽셀 크기가 작기 때문에)에서 1.5x 배율을 적용하고 저밀도 화면 (픽셀 크기가 더 크기 때문에)에서 0.75 배 배율을 적용합니다.

이 읽을 수 있습니다 "건물의 웹 페이지를 다른 화면을 지원하기 위해" 나는 내가 ASME 문제를 보는 것 같아

+0

아, 젠장 - 미안, 우연히 틀린 화살을 쳤어. 사소한 편집을하여 오류를 제거하고 +1하십시오. – zaf

관련 문제