2012-04-19 21 views
9

Chciałbym użyć WebView do wyświetlania obrazów potencjalnie dużych (w celu przejęcia zarządzania pamięcią). Do testu jestem ładuje ten kod w WebViewUmieść obraz wewnątrz widoku WWW i dopasuj szerokość

<head></head> 
<body> 
    <img alt="test" src="file:///android_asset/cute-cat-sleeping.jpg"> 
</body> 

Problem polega na tym, że jeśli załadować go w sieć „tak jak jest”. WebView pozwala tylko na pomniejszenie, dopóki pierwszy wymiar obrazu nie pasuje do ekranu. W tym przykładzie wysokość obrazu jest całkowicie pokazano na WebView i wtedy nie więcej zoom dozwolony:

No zoom no setUseWideViewPort

Jak widać ten tryb nie pozwala mimo że prawidłowe wyświetlanie obrazu globalnego, gdy obraz jest powiększony zachowanie w prawo i dolne kąty są poprawne, jak widać tutaj

correct zoom display

Więc próbowałem (WebView) .getSettings(). setUseWideViewPort (true) a wynik jest taki, że można pomniejszyć mo re niż szerokości obrazu

with setUseWideViewPort

i powiększonego zachowanie nie jest poprawne w granicach prawym dolnym:

zoom with setUseWideViewPort

Podsumowując: Chciałbym max pomniejszyć można być imageWidth = szerokość WebView i zachowanie zoom jak w drugim obrazie:

enter image description here

całkowite i/lub Przydatne odpowiedzi zostaną bountied

EDIT: Bounty otwarty dla Vinayak.B

+1

Nie jestem pewien. Ale spróbuj edytować html. ustaw szerokość na 100%. – Shaiful

+0

robi dziwne zachowanie z zoomem jak przeskakuje do różnych stref niż zoomowane = ( – Addev

+0

Czy pasuje do okna? Jak ostatni obraz? Może można kontrolować powiększanie lub inne zachowanie za pomocą javascript & css. – Shaiful

Odpowiedz

22

Using Viewport Metadata może pomóc to zrobić

rzutni obszar, w którym strona internetowa jest rysowany.Chociaż widoczny obszar rzutni pasuje do rozmiaru ekranu, rzutnia ma swoje wymiary, które określają liczbę dostępnych pikseli na stronie internetowej

także spróbować poniżej

WebSettings settings = webView.getSettings(); 
settings.setUseWideViewPort(true); 
settings.setLoadWithOverviewMode(true); 
5

plik HTML Załaduj Webview i umieścić swoje zdjęcie w folderze aktywów i odczytać dany plik obrazu za pomocą HTML.

<htm> 
    <table> 
    <tr> 
     <td> 
      <img src="cat.gif" width="100%" alt="Hello"> 
     </td> 
    </tr> 
</table> 
</html> 

Teraz załadować ten plik HTML w Webview

webview.loadUrl("file:///android_asset/abc.html"); 

czy inny sposób

jeśli używasz LinearLayout, może podjąć parametr tła, który może być kolor lub zasób.

W pliku main.xml zawiera przeglądarkę internetową. po prostu dodaje się

android:background="@+drawable/backgroundmain" 

i używać

web.setBackgroundColor(0); 

Aby uczynić WebView przejrzysty, aby zobaczyć obraz tła z tyłu.

+1

Powoduje usterki powiększenia. –

4

Oto rozwiązanie ustawić img tag szerokość do 100% w kodzie HTML, a następnie załadować go w WebView użyciu loadDataWithBaseURL(null, htnlString, "text/html", "UTF-8", null); metodę

wypróbować ten kod

String htnlString = "<!DOCTYPE html><html><body style = \"text-align:center\"><img src=\"http://shiaislamicbooks.com/books_snaps/UR335/1.jpg\" alt=\"pageNo\" width=\"100%\"></body></html>"; 
yourWebView.loadDataWithBaseURL(null, htnlString, "text/html", "UTF-8", null); 
Powiązane problemy