2010-05-09 13 views
22

मैं एंड्रॉइड ब्राउज़र में प्रदर्शन के लिए एक HTML पृष्ठ डिज़ाइन कर रहा हूं। इस सरल उदाहरण पेज पर विचार करें:मैं अपनी छवियों को स्केल करने के लिए WVGA एंड्रॉइड ब्राउज़र कैसे प्राप्त करूं?

<html> 
<head><title>Simple!</title> 
</head> 
<body> 
<p><img src="http://sstatic.net/so/img/logo.png"></p> 
</body> 
</html> 

यह मानक HVGA फोन (320x480) पर बस ठीक लग रहा है, लेकिन HDPI WVGA आकार (480x800 या 480x854) पर निर्मित ब्राउज़र अपने आप छवि पैमाने; यह बदसूरत लग रहा है।

मैं पढ़ा है कि मैं अपने पेज स्केलिंग को रोकने के लिए मजबूर करने के लिए ब्राउज़र इस टैग का उपयोग करने के लिए सक्षम होना चाहिए:

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

... लेकिन यह है कि करता है सभी अक्षम उपयोगकर्ता स्केलिंग (ज़ूम बटन गायब है); यह वास्तव में ब्राउज़र को मेरी छवि को स्केल करने से नहीं रोकता है। स्केल कारकों को समायोजित करना (उन्हें सभी को 2.0 या 0.5 पर सेट करना) का कोई प्रभाव नहीं पड़ता है।

मैं अपनी छवियों को स्केल करने के लिए डब्लूवीजीए ब्राउज़र को कैसे मजबूर कर सकता हूं?

+0

मुझे लगता है कि ध्यान दिया है समर्थन करने के लिए विन्यस्त करने "डिफ़ॉल्ट ज़ूम" ब्राउज़र की सेटिंग्स में "सुदूर" में सेटिंग छवि स्केलिंग को अक्षम कर देगी, लेकिन मैं अपने सभी उपयोगकर्ताओं को ऐसा करने की उम्मीद नहीं कर सकता। –

+1

एंड्रॉइड 2.1/एपीआई स्तर 7 में जोड़ा गया "डिफ़ॉल्ट ज़ूम" सेट करने के लिए एक एपीआई है। Webview.getSettings()। SetDefaultZoom() –

+0

इस प्रश्न के प्रयोजनों के लिए, मैं एक वेब साइट बना रहा हूं, न कि एक एंड्रॉइड ऐप वेबव्यू, इसलिए मैं एंड्रॉइड एपीआई का उपयोग नहीं कर सकता। –

उत्तर

32

आह, इसे एंड्रॉइड स्रोत कोड के माध्यम से खोजकर पाया गया। "व्यूपोर्ट" मेटा टैग में उपलब्ध एक नई एंड्रॉइड-विशिष्ट "target-densityDpi" सेटिंग है; जहां तक ​​मैं कह सकता हूं, चेक-इन टिप्पणी को छोड़कर, यह पूरी तरह से अनियंत्रित है!

वेबव्यू के लिए डीपीआई समर्थन जोड़ें।

"व्यूपोर्ट" मेटा टैग में, आप "लक्ष्य-घनत्व डीपीआई" निर्दिष्ट कर सकते हैं। यदि यह निर्दिष्ट नहीं है, तो यह आज के रूप में डिफ़ॉल्ट, 160dpi का उपयोग करता है। फिर व्यूपोर्ट टैग में निर्दिष्ट 1.0 स्केल कारक का अर्थ है जी 1 पर 100% और शॉल्स पर 150%। यदि आप "लक्ष्य-घनत्व डीपीआई" को "डिवाइस-डीपीआई" पर सेट करते हैं, तो 1.0 स्केल कारक का मतलब जी 1 और शॉल्स दोनों पर 100% है।

सफारी की खिड़की को लागू किया गया .devicePixelRatio और सीएसएस मीडिया क्वेरी डिवाइस-पिक्सेल-अनुपात।

तो तुम "उपकरण-डीपीआई" का उपयोग करें और फ़ॉन्ट आकार और छवि के लिए सीएसएस window.devicePixelRatio के आधार पर src, आप Sholes/जुनून पर एक बेहतर पेज प्राप्त कर सकते हैं संशोधित करता है, तो।

यहां "लक्ष्य-घनत्व डीपीआई" के विकल्पों की एक सूची है।

डिवाइस-डीपीआई: डिवाइस के मूल डीपीआई को लक्ष्य डीपीआई के रूप में उपयोग करें। कम-डीपीआई: 120 डीपीआई मध्यम-डीपीआई: 160 डीपीआई, जो आज भी हाई-डीपीआई: 240 डीपीआई : डिफ़ॉल्ट लक्ष्य डीपीआई के रूप में 70 और 400 के बीच कोई भी संख्या लेता है।

+0

लक्ष्य-घनत्व डीपीआई के लिए समर्थन 21 सितंबर 200 9 को एंड्रॉइड स्रोत में जोड़ा गया था और ऐसा लगता है कि कम से कम एंड्रॉइड 1.6 में शामिल नहीं किया गया है। यह इस प्रतिबद्धता में जोड़ा गया था: https://android.git.kernel.org/?p=platform/external/webkit.git;a=commit;h=f10585d69aaccf4c1b021df143ee0f08e338cf31 –

+0

@ मॉर्गनक्रिस्टियनसन यह सच है, लेकिन बहुत कम एंड्रॉइड 1.6 हैं जंगली में एचडीपीआई डिवाइस। एलजी में कुछ फोन हैं जो उस प्रोफाइल में फिट हैं ... उन लोगों को शायद एक बुरा अनुभव होगा। –

+0

मैं एलडीपीआई/छोटे डिवाइस जैसे एचटीसी टैटू और एसई एक्स 10 मिनी को लक्षित कर रहा हूं जो दुखद रूप से एंड्रॉइड 1.6 दोनों हैं। –

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

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