2012-04-05 12 views
9

का उपयोग करते समय Android ViewPager प्रदर्शन समस्याएं मुझे XML द्वारा बनाए गए Activity मिल गए हैं, मैंने अपने चित्रकारी फ़ोल्डर में पृष्ठभूमि छवि पर अपनी पृष्ठभूमि सेट की है।पृष्ठभूमि

उसी गतिविधि में मैंने ViewPager बनाया है ताकि विचारों के बीच आगे और पीछे स्वाइप करने की अनुमति मिल सके। ViewPager के अंदर सभी विचार एक छवि शामिल हैं।

जब भी मैं बाएं या दाएं स्वाइप करता हूं, संक्रमण बहुत धीमा होता है।

मैंने इसे पृष्ठभूमि छवि को सफेद (# एफएफएफ) पर सेट करके हटाने की कोशिश की और सभी अंतराल चले गए। यह सही काम किया! समस्या यह है कि मुझे उस पृष्ठभूमि के लिए पृष्ठभूमि की आवश्यकता है।

क्या पृष्ठभूमि छवि को अनुकूलित करने का कोई तरीका है या कुछ स्वाइपिंग फिर से आसानी से जाएगी? वर्तमान में यह अंतराल के कारण उपयोग करने में बहुत निराशाजनक है।

मैंने छवि को छोटे आकार में फसल करने की कोशिश की और फिर इसे स्क्रीन पर फैलाया, लेकिन मुझे कोई प्रदर्शन सुधार नहीं हुआ। इसके अलावा यह छवियों की गलती नहीं है जो ViewPager में स्थित हैं, जब मैंने टेक्स्टव्यू के साथ इसका परीक्षण किया, वही अंतराल था।

उत्तर

16

मैंने कुछ खोज के बाद इसे स्वयं समझ लिया, मैं इस समस्या का सामना करने वाले किसी और के लिए यहां जवाब छोड़ दूंगा।

स्पष्ट रूप से एंड्रॉइड में छवि को फैलाए जाने पर पृष्ठभूमि को प्रस्तुत करने में बहुत सारी परेशानी होती है। गैलेक्सी टैब 10.1 पर कम से कम एंड्रॉइड 3.2 चल रहा है।

मैं जिस पृष्ठभूमि छवि का उपयोग कर रहा था वह लकड़ी की मंजिल की एक तस्वीर थी, क्योंकि यह एक ही तख्ते का एक पैटर्न है जो खुद को दोहराता है, मैंने 1440 x 1050 से 350x500 तक छवि को फसल करने में कामयाब रहा। पूरी स्क्रीन पर फैले हुए इस छवि का उपयोग पृष्ठभूमि के रूप में करते समय वहां एक बड़ी प्रदर्शन ड्रॉप थी। शीर्ष बाएं कोने में एक छवि के रूप में प्रदर्शित करते समय, यह ठीक काम करता है।

here वर्णित विधि का उपयोग करके मैंने इसे खींचने की बजाय पूरी स्क्रीन पर छवि को दोहराने में कामयाब रहे। आश्चर्यजनक रूप से पर्याप्त, मैंने बिल्कुल कोई अतिरिक्त तनाव नहीं देखा और संक्रमण बहुत चिकनी हो गया।

तो यहां यह उम्मीद है कि यह अन्य प्रदर्शन समस्याओं के साथ दूसरों की मदद करेगा!

14

बाद के वर्षों में एक और समाधान: आपको अपने ड्रॉबल्स को उचित फ़ोल्डर्स में रखना होगा। मेरे पास drawable फ़ोल्डर में मेरा background.png था और यह लगी हुई है क्योंकि यह छिद्र के साथ संघर्ष करता है। मैं दोहराने योग्य उपयोग नहीं कर सका क्योंकि मेरे पास मेरे फोन पर उस तरह का पैटर्न नहीं है।

लेकिन जब मैंने अपनी खींचने योग्य पृष्ठभूमि को खींचने योग्य-xhdpi में रखा, तो बिना किसी अंतराल के काम किया। तो भविष्य के संदर्भ के लिए यह भी संभावना है कि इससे आपकी समस्या हल हो सकती है। इस सवाल को रेफरी करें जो खुद को हल करता है: ViewPager really slow on Samsung S4

+0

यह बहुत ही बढ़िया है, मुझे अपने मोटो एक्स के साथ समस्याएं थीं, और ड्रॉबल्स को ड्रॉइंग-एक्सएचडीपीआई को हल करने से समस्या हल हो गई! – marcwjj

2

यह चाल मुझे पेजर के साथ स्वाइप करते समय बहुत मदद करती है। यह हार्डवेयर त्वरण पर आधारित है।

 viewPager.setOnPageChangeListener(new OnPageChangeListener() { 
       @Override 
       public void onPageScrollStateChanged(int scrollState) { 
        if (scrollState != ViewPager.SCROLL_STATE_IDLE) { 
         final int childCount = viewPager.getChildCount(); 
         for (int i = 0; i < childCount; i++) 
          viewPager.getChildAt(i).setLayerType(View.LAYER_TYPE_NONE, null); 
        } 
       } 

      .... 
}); 

आशा है कि इससे मदद मिलेगी।

+0

धन्यवाद! बहुत आदमी, –

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