2010-07-23 5 views
9

내 앱에서는 webView 덕분에 사진을 표시합니다. 따라서 각 이미지에 대해 webView로로드하는 작은 HTML 코드를 만듭니다. 그래서 내 HTML 코드는 기본적으로 img 태그 (내 그림의 경로 포함)로 구성됩니다.WebView의 이미지 맞춤 화면

내 그림의 크기가 다르기 때문에 그림의 너비를 webView 너비에 맞추기 위해 webView 확대/축소를 설정하고 싶습니다. 따라서 사용자는 전체 그림을 볼 수 있도록 확대 또는 축소 할 필요가 없습니다.

달성 방법이 있습니까?

감사합니다.

+0

아직 문제가 해결 되었습니까? – JochenJung

+1

미안하지만 아직 해결하지 못했습니다. 여기에 해결책이 있습니다 : http://developer.android.com/guide/webapps/targeting.html 그들이 HTML 코드에 "width = device-width"태그를 추가했으나 작동하지 않는다고 말했기 때문에 : (여전히 솔루션을 찾고 있습니다. – Trox

+0

나를 막으십시오. 지금까지 이것을 풀어 보셨습니까? – Yeung

답변

0

이렇게하기 위해 WebView를 사용하는 이유가 있습니까? ImageView을 사용하면 scaleType을 설정하여 이미지를 ImageView의 크기에 맞출 수 있습니다.

webView.setInitialScale(30); 
WebSettings webSettings = webView.getSettings(); 
webSettings.setUseWideViewPort(true); 
+8

글쎄요. 내장 줌 및 수평/수직 스크롤의 원인. – Trox

+0

또는 이미지 뷰가있는 대화 상자? 그 미친 권리!? 누가 그랬어. – JoxTraex

3

. 같은

뭔가 :

$(document).ready(function(){ 
    var windowWidth = $(window).width()+"px"; 
    $("#imagID").width(windowWidth); 
}); 
+0

답장을 보내 주셔서 감사합니다. 이것을 사용하면 내 큰 그림 (약 1000px * 2000px)이 잘 가운데에 배치되지만 내 작은 그림 (320px 너비의 경우)이 실제로 작아지고이를보기 위해 확대해야합니다. – Trox

1

당신은뿐만 아니라 그것을 달성하기 위해 웹 페이지에 약간의 jQuery를 사용할 수 있습니다 나를 위해 속임수를 썼는지

4

당신이 (당신이 당신이 말) HTML 코드를 creaing하는 경우, 당신은 속일 수 있습니다 HTML 코드

:

img src="xxx" width="100% > 
+0

아름답고 잘 작동하는 해킹 ;-) –

1

나는 영혼을 발견했다.

이 계산을 사용하십시오.

장치 폭 * (152/밀도)

것은 IMG 테그 너비로 계산

세트

값 (152)은 장치의 폭 및 밀도 사용 displayMetrics.widthPixels 및 displayMetrics.densityDpi 검색 원래는 160 이었지만 160을 사용하면 이미지가 화면보다 큽니다.

이미지가 처음에는 화면에 맞고 확대가 제대로 작동합니다.

1

일부 자바 스크립트를 사용하여 이미지를 안드로이드 응용 프로그램에 전달하고 해당 대화 상자의 이미지가 포함 된 사용자 지정 대화 상자를 가져 와서 콘텐츠에 따라 확장되도록하는 이유가 있습니까?

개인적으로 저는이 솔루션이 귀하의 접근 방식보다 우아하다고 생각합니다. 나를 위해 일한 무엇

2

이 있었다 : 대신에, 그래서

width="100%" 

무엇인지 내가 한 : 내가 읽어 보시기 바랍니다 당신은 필드 내부에 HTML이나 XML이를 추가해야 화면 폭에 맞게하기 위해 스케일링 및 이미지 확대/축소, 나는 XML 가져, StringBuilder 넣고 src = "https://blablabla.com/image.

public void setWebViewWithImageFit(String content){ 

     // content is the content of the HTML or XML. 
     String stringToAdd = "width=\"100%\" "; 

     // Create a StringBuilder to insert string in the middle of content. 
     StringBuilder sb = new StringBuilder(content); 

     int i = 0; 
     int cont = 0; 

     // Check for the "src" substring, if it exists, take the index where 
     // it appears and insert the stringToAdd there, then increment a counter 
     // because the string gets altered and you should sum the length of the inserted substring 
     while(i != -1){ 
      i = content.indexOf("src", i + 1); 
      if(i != -1) sb.insert(i + (cont * stringToAdd.length()), stringToAdd); 
      ++cont; 
     } 

     // Set the webView with the StringBuilder: sb.toString() 
     WebView detailWebView = (WebView) findViewById(R.id.web_view); 
     detailWebView.loadDataWithBaseURL(null, sb.toString(), "text/html", "utf-8", null); 
} 

희망이 : 폭 = "100 %", "다음 y는 모두 StringBuilder 내 웹보기를 설정 SRC"나는 삽입 문자열 ""현장 내부와 바로 앞에있는 "PNG, 미시간 코드는 이것이다 이 문제를 해결하는 방법을 알아 내는데 몇 시간이 걸렸습니다.