2009-08-18 5 views
7

ब्लैकबेरी में, क्या स्मृति उपयोग और प्रदर्शन के संदर्भ में बिटमैप क्लास या एनकोडेड इमेज का उपयोग करना बेहतर है? क्या इन वर्गों का उपयोग करने पर कोई विशिष्ट सुझाव हैं?क्या ब्लैकबेरी में बिटमैप या एनकोडेड इमेज का उपयोग करना बेहतर है?

+2

के रूप में उपयोग करें यदि आपकी स्रोत छवि वास्तव में एक पीएनजी, जीआईएफ, जेपीजी, या जो कुछ भी है, तो आपको एनकोडेड इमेज का उपयोग करना होगा। जब आप बिटमैपफ़ील्ड सेट करते हैं, तो आप इसे बिटमैप के साथ बना सकते हैं या बाद में एन्कोडेड इमेज सेट कर सकते हैं। उत्सुकता से, आप केवल सृजन के दौरान इसे ध्यान केंद्रित कर सकते हैं, जहां बिटमैप की आवश्यकता होती है। बिटमैप अधिक मेमोरी (पूरी तरह से डीकोडेड छवि) का उपयोग करेगा जब तक कि एन्कोडेड इमेज आंतरिक रूप से एक डीकोडेड प्रति भी नहीं रखता (कोई विचार नहीं - जेडीई संस्करण पर भी निर्भर हो सकता है) लेकिन मैंने देखा है कि GetBitmap() अक्सर बहुत तेज़ होता है। आपको शायद अपने सटीक उपयोग मामले में देखने के लिए अपनी खुद की प्रोफाइलिंग करने की आवश्यकता होगी ... – lilbyrdie

+1

क्या यह टिप्पणी के बजाय उत्तर नहीं होना चाहिए? :) – KarolDepka

उत्तर

7

मेरे अवलोकन है बेहतर है कि:

  • उपयोग बिटमैप और तत्वों (खेल में पूर्व पृष्ठभूमि छवि) की आवश्यकता होती है कि अक्सर फिर से रंगना

शायद यह क्योंकि बिटमैप एक कच्चे प्रारूप ताकि कोई प्रदर्शन है है के लिए drawBitmap drawImage से पहले एन्कोडेड छवि को डीकोड करने के लिए हिट करें। दूसरी तरफ, जीआईएफ एनीमेशन एन्कोडेड इमेज के साथ पूरी तरह से काम करता है। (पूर्व फोटो या decore तत्वों)

जब आप GIF, PNG, जेपीजी प्रारूपों से बिटमैप लोड वे वैसे भी एक EncodedImage के रूप में खोला जाएगा एनीमेशन के लिए या संसाधनों की एक बड़ी राशि के लिए

  • उपयोग EncodedImage, और अगर आप इस में कई बार करते हैं, यह प्रदर्शन

    अद्यतनstated by Fostah EncodedImage (पूर्व 50 सेकंड 80 केबी, 2 सेकंड EncodedImages में लोड करने के लिए देखते बोल्ड, औसत आकार पर बिटमैप करने के लिए संसाधनों से 14 png लोड करने के लिए) को हरा सकते हैं एक getBitmap() फ़ंक्शन है आप किसी भी एन्कोडेड इमेज को बिटमैप में कनवर्ट करने के लिए उपयोग कर सकते हैं। तो आप एन्कोडेड इमेज में लोड कर सकते हैं और फिर बिटमैप