मेरे पास एक प्रकाशित ऐप है जो एंड्रॉइड एन पर स्टार्टअप पर दुर्घटनाग्रस्त हो रहा है जब नव शुरू की गई Display sizeओएस सेटिंग बहुत बड़े मूल्य पर सेट है।
जब मैं लॉगकट में देखता हूं, तो मुझे निम्न संदेश दिखाई देता है:
java.lang.RuntimeException: Canvas: trying to draw too large(106,975,232 bytes) bitmap.
मैंने अपनी पहली गतिविधि में एक ImageView को समस्या का पता लगाया है जो एक अच्छी बड़ी पृष्ठभूमि छवि दिखाता है। प्रश्न में छवि 2048x1066 है और मेरी जेनेरिक drawablesनिर्देशिका में है, इसलिए कोई भी घनत्व नहीं है, इस छवि का उपयोग किया जाएगा।
Display sizeसेटिंग होने पर सब कुछ ठीक चलता है Small। लेकिन जब मैं ऊपर जाता हूं Default, तो यह काम करना बंद कर देता है। यदि मैं तब छवि को एक छोटे से स्वैप करता हूं, तो यह काम करता है Default, लेकिन अगर मैं ऊपर जाता हूं Large, तो यह फिर से काम करना बंद कर देता है।
मेरा अनुमान है कि समायोजित Display sizeकरने से आपके डिवाइस को उच्च पिक्सेल घनत्व के साथ शारीरिक रूप से छोटे उपकरण की तरह व्यवहार करना पड़ता है। लेकिन मुझे समझ नहीं आ रहा है कि मैं यहाँ क्या करने वाला हूँ। यदि मैं उत्तरोत्तर उच्च संकल्पों के लिए उत्तरोत्तर छोटी छवियों में रखता हूं, तो यह वास्तव में बड़े डिस्प्ले पर अच्छा नहीं लगेगा। या मैं कुछ समझ नहीं रहा हूँ?
किसी भी प्वाइंटर की अत्यधिक सराहना की जाएगी।
res/drawable/लिए एक पर्याय हैres/drawable-mdpi/। यदि आप चाहते हैं कि घनत्व, उपयोगres/drawable-nodpi/या केres/drawable-anydpi/आधार पर छवि को छोटा न किया जाए ।