2010-06-11 13 views
8

मेरे पास WebView है जो मैं पृष्ठ लोड करने पर एक निश्चित प्रतिशत के पैमाने पर स्केल करने की कोशिश कर रहा हूं। इस सॉफ्टवेयर के iPhone संस्करण एचटीएमएल मेटा टैग का उपयोग करता है:एंड्रॉइड वेबव्यू स्केलिंग प्रतिशत का सम्मान नहीं कर रहा

<meta name="viewport" content="width=320, initial-scale=0.95, maximum-scale=2.0, user-scalable=1"> 

के बाद से Android के WebView कि टैग मैं प्रतिशत setInitialScale() का उपयोग कर हार्ड-कोडेड सम्मान करने के लिए प्रतीत नहीं होता। हालांकि, वेब व्यू इस विधि कॉल को अनदेखा कर रहा है। इससे कोई फर्क नहीं पड़ता कि मैंने वहां कितनी संख्या डाली है, यह 100% पर दिखाती है।

विचार?

अद्यतन: यह मेरे Droid (मोटोरोला), या मेरे जी 1 (एचटीसी) पर, एम्यूलेटर में काम नहीं कर रहा है।

+0

हाय एंड्रॉइड डिवाइस आप किस प्रकार उपयोग कर रहे हैं? – Jorgesys

+0

एमुलेटर, जी 1, Droid ... उनमें से किसी पर काम नहीं कर रहा है। –

उत्तर

1

क्या आपने अपने वेबदृश्य के लिए ज़ूम समर्थन सक्षम किया है?

WebSettings webSettings = mywebView.getSettings(); 
    webSettings.setSupportZoom(true);  
+0

मैंने नहीं किया था, लेकिन मैंने अभी कोशिश की और इससे कोई फर्क नहीं पड़ता। –

5

कुछ HTC उपकरणों WebView साथ कोई समस्या है, यह स्निपेट की कोशिश करो!

import java.lang.reflect.Method; 
import java.lang.reflect.InvocationTargetException; 

myWebView = new WebView(this); 
myWebView.getSettings().setLoadsImagesAutomatically(true); 
myWebView.getSettings().setJavaScriptEnabled(true); 
myWebView.getSettings().setBuiltInZoomControls(true); 
myWebView.setInitialScale(100);  
try { 
    Method m = myWebView.getClass().getMethod("setIsCacheDrawBitmap", boolean.class); 
    if (m != null) { 
     m.invoke(myWebView, false); 
     myWebView.getSettings().setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NORMAL); 
    } 
} catch (NoSuchMethodException e) { 
} catch (IllegalAccessException e) { 
} catch (InvocationTargetException e) { 
} 

myWebView.loadUrl("http://www.stackoverflow.com"); 
+1

मैंने पाया कि यह मूल लिंक है http://community.htc.com/na/htc-forums/android/f/91/p/2332/8538.aspx =) – Jorgesys

+1

कोई फर्क नहीं पड़ता ... धन्यवाद। –

0

कई विकल्प देख सकते हैं।

1। शायद आपके कोड में कुछ गड़बड़ है। यहां सबसे सरल कोड है और मैं यह बता सकता हूं कि यह मेरे लिए काम करता है। सामग्री स्केल की गई है।

WebView webview1 = (WebView) findViewById(R.id.webview1); 
webview1.setInitialScale(30); 
webview1.loadUrl("http://stackoverflow.com"); 

तो कृपया अपना कोड पोस्ट करें। WebView कॉन्फ़िगरेशन से संबंधित सभी कोड। मैं एम्यूलेटर 2.2

2 पर परीक्षण करता हूं। शायद आप परीक्षण यूआरएल के साथ कुछ गलत है। आप "http://stackoverflow.com" का परीक्षण कर सकते हैं क्योंकि मैं इसके साथ परीक्षण करता हूं और यह ठीक से स्केल किया जाता है।

3। शायद हम विभिन्न एसडीके का उपयोग करें। आप किस एसडीके के खिलाफ निर्माण करते हैं? मेरा मतलब है कि डिफ़ॉल्ट रूप से आपका लक्ष्य क्या है। प्रॉपर्टीज? AndroidManifest.xml में आपके उपयोग-एसडीके क्या हैं?

यहां एक साधारण परीक्षण है जो मेरे लिए ठीक काम करता है http://open-pim.com/tmp/WebViewTest.zip। आप भी कोशिश कर सकते हैं।

+2

यह काम किया! लेकिन मेरे ऐप्स में नहीं। मेटा व्यूपोर्ट टैग को चालू करता है: प्रारंभिक-स्केल = 1.0; अधिकतम-पैमाना = 1.0; काम करने से setInitialScale() को रोक रहे थे।उन्हें हटाने के बाद यह काम करता है। –

+0

यह उदाहरण एंड्रॉइड 2.3.6 पर वेबव्यू के साथ काम नहीं करता है। Stackoverflow वेबसाइट स्केल नहीं किया गया है। –

0

meta टैग मेरे लिए काम करता है, अगर मैं अल्पविराम (;) के बजाय अर्धविराम (;) के साथ पैरामीटर अलग करता हूं। मैंने इसे अतीत में उपयोग किया है:

<meta name="viewport" content="initial-scale=1.0; maximum-scale=1.0; user-scalable=0;" /> 

और यह कम से कम ब्राउज़र में काम करता है। मुझे WebView के बारे में निश्चित नहीं है, लेकिन यह एक शॉट के लायक हो सकता है।

+0

';' मेरे लिए कुछ नहीं किया – Jake

+0

यह अमान्य सामग्री है, केवल अल्पविरामों की अनुमति है: https://css-tricks.com/snippets/html/responsive-meta-tag/ –

1

नीचे दिए गए कोड ने मेरी सहायता करते समय मेरी सहायता की। एक शॉट के लायक:

mywebview.setWebViewClient(new WebViewClient()); 
mywebview.getSettings().setSupportZoom(true) ; 
mywebview.getSettings().setUseWideViewPort(true) ; 
mywebview.setInitialScale(1) ; 
mywebview.loadUrl(sURL); 
+0

यह मेरे एंड्रॉइड 2.3.6 फोन पर काम नहीं करता है। व्यूपोर्ट के लिए 'प्रारंभिक-स्केल' सेट करना अभी भी कोई प्रभाव नहीं पड़ता है। –

संबंधित मुद्दे