2010-08-19 8 views
22

से छवि प्रदर्शित करें मेरे पास Main कक्षा है जिसमें onCreate() विधि है। उस विधि में मैंने MapFile क्लास 'ऑब्जेक्ट बनाया है। और इसे readFile() और readIndex() विधियों कहा जाता है। readIndex() विधि में मैं MapTile नामक एक और वर्ग कहता हूं जहां मैंने अपनी बाइनरी फ़ाइल से छवियों की टाइलें पढ़ीं और वहां मुझे अपनी छवि प्रदर्शित करनी है।बाइटएरे

प्रश्न यह है कि, मैं अपना कोड onCreate(Bundle savedInstanceStare) विधि में डाले बिना एक छवि कैसे प्रदर्शित कर सकता हूं? मैं इस तरह से कोशिश कर रहा हूं लेकिन पहली पंक्ति पर यह मुझे NullPointerException देता है।

ImageView image = (ImageView) findViewById(android.R.id.icon);   
Bitmap bMap = BitmapFactory.decodeByteArray(imageTile, 0, imageTile.length); 
image.setImageBitmap(bMap); 

उत्तर

6

मुझे लगता है कि आपकी समस्या बाइटएरे नहीं है लेकिन findViewById है। जैसा कि आप कहते हैं कि एनपीई पहली पंक्ति पर है। इस विधि से संबंधित नियमों के आपके पास दो विकल्प यह कॉल करनी होगी हैं:

या तो आप इसका इस्तेमाल एक दृश्य आप पहले से ही लेआउट आप setContentView
में कहा जाता है में है क्वेरी करने के लिए या आप एक लेआउट में निहित एक दृश्य पर इसका इस्तेमाल आप एक लेआउट inflater के साथ मैन्युअल रूप से फुलाया

यदि आप setContentView में किसी अन्य लेआउट से किसी अन्य लेआउट से दृश्य को कॉल करने के लिए अपनी गतिविधि में इसका उपयोग करने का प्रयास करते हैं, तो आपने खुद को फुलाया नहीं है, यह शून्य हो जाएगा।

+0

क्या आप मुझे कुछ उदाहरण दे सकते हैं .... मैं नहीं समझ सके। – sajjoo

+0

लाइन को हटाएं ImageView image = (ImageView) findViewById (android.R.id.icon); और इसे ImageView image = new ImageView (this) द्वारा प्रतिस्थापित करें; और छवि बिटमैप सेट करने के बाद, छवि लेआउट को अपने लेआउट में जोड़ें – Sephy

+0

ओह धन्यवाद बहुत से sephy – sajjoo

32

एक Android imageView करने के लिए एक बाइट सरणी जोड़ने:

 //byte[] chartData 
     ImageView imgViewer = (ImageView) findViewById(R.id.chart_image); 
     Bitmap bm = BitmapFactory.decodeByteArray(chartData, 0, chartData.length); 
     DisplayMetrics dm = new DisplayMetrics(); 
     getWindowManager().getDefaultDisplay().getMetrics(dm); 

     imgViewer.setMinimumHeight(dm.heightPixels); 
     imgViewer.setMinimumWidth(dm.widthPixels); 
     imgViewer.setImageBitmap(bm); 
+2

सरल और प्रभावी; Thanx दोस्त –

+0

यह स्वीकार्य उत्तर होना चाहिए ... क्योंकि यह प्रश्न (अच्छी तरह से) का जवाब देता है। – YvesLeBorg

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