अद्यतन: यदि आपके पास एक नया एपीआई (> 18) है आप इस प्रश्न के अंत में नोट को देखना चाह सकते हैं।
काफी थोड़ी देर के लिए संघर्ष करने के बाद मुझे समाधान मिला!
समाधान ज़ूमिंग पर नहीं था। ज़ूम को HTML पृष्ठ के लिए सक्षम नहीं किया गया था और यह HTML द्वारा अनुमानित आकार को प्रभावित नहीं करता था।
मैं वेबव्यू की चौड़ाई को कम करके यह मिल गया:
ViewGroup.LayoutParams webviewLayoutParameters = mWebView.getLayoutParams();
webviewLayoutParameters.width = (int) (760);
webviewLayoutParameters.height =(int) (webviewHeight);
mWebView.setLayoutParams(webviewLayoutParameters);
उसके बाद पृष्ठ के रूप में एक शैली है कि स्क्रीन के लिए बदल आकार की तुलना में कम 768px, यह अलग देखने के लिए शुरू कर दिया था। काफी बेहतर।
लेकिन फिर मैं उस छोटे वेबव्यू को विस्तारित करना चाहता था ताकि यह पूरे स्क्रीन पर फिट हो सके। इसके लिए मैंने scaleX
और scaleY
का उपयोग किया।
यह मेरा पूरा टिप्पणी की समाधान है:
// First, get the current screen size
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int displayWidth = size.x;
int displayHeight = size.y;
//Then, set the amount you want to make your screen smaller. This means that it will comunicate to the HTML that its 20% smaller than it really is
float amplification_ratio = (float) 0.20;
// Shrink webview size
ViewGroup.LayoutParams webviewLayoutParameters = mWebView.getLayoutParams();
webviewLayoutParameters.width = (int) (displayWidth*(1-amplification_ratio));
webviewLayoutParameters.height =(int) (displayHeight*(1-amplification_ratio));
mWebView.setLayoutParams(webviewLayoutParameters);
// Now scale it the inverse ammount so it will take the full screen.
mWebView.setScaleX(1/(1 - amplification_ratio));
mWebView.setScaleY(1/(1 - amplification_ratio));
यह बहुत अच्छी तरह से काम किया। मैं इसे इस तरह से स्केल करने में कामयाब रहा कि स्क्रीन आकार बदलता है। सिकुड़ने और स्केलिंग से छवि की गुणवत्ता कम हो जाएगी, लेकिन यह एक बड़ा सौदा नहीं है।
ओब्स: HTML पृष्ठ बूटस्ट्रैप में बनाया गया था और केवल बूटस्ट्रैप के -xs
डिवाइसों के लिए कक्षाएं थीं। तो मुझे स्क्रीन को अनुकरण करना था 768px से छोटा था।
Obs2 (अद्यतन): इस प्रक्रिया
मैं अपने ऐप पर इस कार्यान्वित नामकरण, यह परीक्षण किया (मॉडल और एकीकरण), और इसके अब उत्पादन में रहते हैं। कार्यों और चर बनाने के लिए, मुझे इस प्रक्रिया का नाम देना पड़ा। यह एक वेबव्यू पिक्सेल के आकार को बढ़ाने की तरह है। इस तरह, वेबव्यू अभी भी पूरी स्क्रीन को फेंक देगा, लेकिन इसमें चौड़ाई होगी, पिक्सेल में, जो छोटा है।
इस बात को ध्यान में रखते हुए, pixelEnlargementFactor
, pixelMagnificationRatio
या pixelSizeMultiplicator
जैसे किसी भी नाम का नाम अच्छा होगा।
अद्यतन:
चेतावनी: केवल विशिष्ट मामलों में उपरोक्त विधि का प्रयोग करें!
मेरे पास एक पुराना एपीआई संस्करण (15) था और कई विकल्पों के साथ RelativeLayout
था। उसके बाद, setInitialScale(120)
काम नहीं किया था जैसा मैं चाहता था।
अब मैं कम विकल्प के साथ एक सरल FrameLayout
को 19 मेरी एपीआई और मेरे लेआउट बदल दिया है। कमांड mWebView.getSettings().setUseWideViewPort(false)
के साथ कमांड जो मैंने बहुत कम कोड के साथ पहले हासिल किया था।
क्या आपने एंड्रॉइड देव साइट पर ज़ूमिंग ए व्यू पर मार्गदर्शिका देखी है? यह मदद कर सकता है .. http://developer.android.com/training/animation/zoom.html#setup – frgnvola
हाँ। ऐसा प्रतीत नहीं होता है। दृश्य का विस्तार करने से पृष्ठ का HTML अलग-अलग व्यवहार नहीं करता है। –
हम्म .. आप साइट एजेंट को साइट ब्राउज़र के रूप में प्रदर्शित करने के लिए उपयोगकर्ता एजेंट को स्विच करने का प्रयास कर सकते हैं, जो इसे टेबलेट पर बेहतर बना सकता है – frgnvola