WebView में ज़ूम नियंत्रण और चुटकी ज़ूम कैसे सक्षम करें?


131

एंड्रॉइड के लिए डिफ़ॉल्ट ब्राउज़र ऐप ज़ूम कंट्रोल को दिखाता है जब आप स्क्रॉल कर रहे होते हैं और चुटकी ज़ूम करने की भी अनुमति देता है। मैं अपने वेबव्यू के लिए इस सुविधा को कैसे सक्षम कर सकता हूं?

मैंने कोशिश की:

webSettings.setBuiltInZoomControls(true);
webSettings.setSupportZoom(true);

लेकिन इसके परिणामस्वरूप दोनों में से कोई भी सुविधा सक्षम नहीं होती है। Btw मैं एक निर्धारित किया है WebChromeClientऔर एक WebViewClientवेब-दृश्य के लिए है कि अगर एक फर्क नहीं पड़ता।

धन्यवाद!

जवाबों:


291

अजीब। OnCreate पद्धति के अंदर, मैं उपयोग कर रहा हूं

webView.getSettings().setBuiltInZoomControls(true);

और यह यहाँ ठीक काम कर रहा है। आपके वेबव्यू में कुछ खास?


46
यह चुटकी से ज़ूम करने की अनुमति देगा, यह एक ज़ूम ओवरले नियंत्रण (गैलेक्सी S3) भी प्रदर्शित करेगा। ऑन-स्क्रीन जूम टूल को अक्षम करने के लिए, लेकिन चुटकी-टू-ज़ूम कार्यक्षमता को बनाए रखने के लिए, आपको webView.setDisplayZoomControls (झूठा) को भी कॉल करना होगा।
— लेव

49
^webView.getSettings().setDisplayZoomControls(false);
— वारिंडी

ये सभी मेरे लिए काम नहीं करते हैं। उदाहरण के लिए इस वेबसाइट को आज़माएँ: " nbc26.com/robocalls/… "। यह मुझे ज़ूम नहीं करने देता। क्या यह वास्तव में आपके लिए काम करता है? कृपया इसके लिए संपूर्ण कोड दिखाएं।
— एंड्रॉयड डेवलपर

यदि कोई भी इस उत्तर को देख रहा है और सोच रहा है कि वेबव्यू ऑब्जेक्ट कहाँ से आता है, तो आप इसे इस टिप्पणीWebView webView = (WebView) appView.getEngine().getView(); में दिखाए अनुसार प्राप्त कर सकते हैं ।
— एंड्रयू डैंट

यदि आप Xamarin.Android वेब व्यू रेंडरर का उपयोग करते हैं, तो यह नीचे दिए गए कोड के रूप में है। Control.BuiltInZoomControls = true; Control.Settings.SetSupportZoom (सही); नियंत्रण। सेटिंग .isplayZoomControls = false;
— आदिल सय्यद

94

इन का उपयोग करें:

webview.getSettings().setBuiltInZoomControls(true);
webview.getSettings().setDisplayZoomControls(false);

1
प्लस 1, जवाब के लिए .. मेरी मदद की।
— अक्षता श्रीनिवास

1
हां, setBuiltInZoomControls (सच) और setDisplayZoomControls (झूठा) ने मेरे लिए काम किया।
— प्रतिका सलूजा

34

जांचें कि क्या आपके पास अपने वेबव्यू को स्क्रॉल करने वाला स्क्रॉल दृश्य नहीं है ।

मेरे मामले में यह समस्या थी। ऐसा लगता है कि स्क्रॉलव्यू पिंच जेस्चर के रास्ते में मिलता है।

इसे ठीक करने के लिए, अपने वेबव्यू को स्क्रॉलव्यू के बाहर ले जाएं ।


6
आपने मेरा दिन बचाया
— accmattio

मेरे लिए बहुत अच्छा काम करता है। अब मैं अपने नेस्टेड स्क्रॉल दृश्य को पूरी तरह से हटा सकता हूं!
— अवी दर्शन

जब आप एंड्रॉयड में जोड़ सकते हैं यह काम: <: layout_width = "match_parent" एंड्रॉयड: layout_height = "match_parent" एंड्रॉयड: scrollview एंड्रॉयड fillViewport = "true"> fillViewport सच =
— androidAhmed

4

OnCreate के अंदर, जोड़ें:

 webview.getSettings().setSupportZoom(true);
 webview.getSettings().setBuiltInZoomControls(true);
 webview.getSettings().setDisplayZoomControls(false);

HTML दस्तावेज़ के अंदर, जोड़ें:

<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=2, user-scalable=yes">
</head>
</html>

जावास्क्रिप्ट के अंदर, छोड़ें:

//event.preventDefault ? event.preventDefault() : (event.returnValue = false);

सेटसुपोर्टज़ूम के लिए डिफ़ॉल्ट बूलियन है true, webview.getSettings().setSupportZoom(true);डिफ़ॉल्ट रूप से इसकी कोई आवश्यकता नहीं है ।
— زياد

अच्छा उत्तर! आपने HTML से संबंधित मुद्दों का उल्लेख किया, यह मेरी समस्या को हल करने की कुंजी है! धन्यवाद !
— सीवेई शेन

4

WebView में ज़ूम नियंत्रण सक्षम करने के लिए, निम्नलिखित पंक्ति जोड़ें:

webView.getSettings().setBuiltInZoomControls(true);

इस कोड की लाइन के साथ, आप अपने वेबव्यू में ज़ूम को सक्षम कर सकते हैं, यदि आप दिए गए ज़ूम इन और ज़ूम आउट बटन को हटाना चाहते हैं, तो कोड की निम्न लाइन जोड़ें:

webView.getSettings().setDisplayZoomControls(false);

2

इस कोड की कोशिश करो, मैं ठीक काम कर रहा हूँ।

 webSettings.setSupportZoom(true);
 webSettings.setBuiltInZoomControls(true);
 webSettings.setDisplayZoomControls(false);
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.