संसाधन से बिटमैप कैसे सेट करें


279

यह सरल लगता है, मैं एक बिटमैप छवि सेट करने का प्रयास कर रहा हूं, लेकिन संसाधनों से, मेरे पास ड्रॉबल फ़ोल्डर में एप्लिकेशन के भीतर है।

bm = BitmapFactory.decodeResource(null, R.id.image);

क्या ये सही है?

जवाबों:


756

मान लें कि आप इसे गतिविधि वर्ग में बुला रहे हैं

Bitmap bm = BitmapFactory.decodeResource(getResources(), R.drawable.image);

पहला पैरामीटर, संसाधन, आवश्यक है। यह किसी भी संदर्भ में सामान्य रूप से प्राप्य है (और गतिविधि जैसे उपवर्ग)।


1
मुझे बिटमैप का शून्य मान मिल रहा है, क्या आप मुझे बता सकते हैं कि मैं क्यों अशक्त हो रहा हूं
गौतम

हाँ, मुझे एक ही मुद्दा मिल रहा है, बिटमैप का शून्य मान।
एर.रोहित शर्मा

3
मुझे मुद्दा मिल गया। मैं वेक्टर ड्रॉबल को बिटमैप में बदलने की कोशिश कर रहा था। तो यहाँ वेक्टर ड्रिबल को बिटमैप में बदलने के लिए कोड है।
एर.रोहित शर्मा

यदि एक्टिविटी क्लास से कॉल न किया जा रहा हो (जैसे, यदि डेटा क्लास से कॉल किया जाए) तो आप कोशिश कर सकते हैं: वैल myBitmap = BitmapFactory.decodeResource (Resources.getSystem (), R.drawable.your_image) <-Kotlin
Bikeboy

36

इसे इस्तेमाल करे

यह sdcard से है

ImageView image = (ImageView) findViewById(R.id.test_image);
Bitmap bMap = BitmapFactory.decodeFile("/sdcard/test2.png");
image.setImageBitmap(bMap);

यह संसाधनों से है

Bitmap bMap = BitmapFactory.decodeResource(getResources(), R.drawable.icon);

7

यदि संसाधन दिखाई दे रहा है और एक दृश्य है, तो आप इसे कैप्चर भी कर सकते हैं। स्क्रीनशॉट की तरह:

View rootView = ((View) findViewById(R.id.yourView)).getRootView();
rootView.setDrawingCacheEnabled(true);
rootView.layout(0, 0, rootView.getWidth(), rootView.getHeight());
rootView.buildDrawingCache();

Bitmap bm = Bitmap.createBitmap(rootView.getDrawingCache());

rootView.setDrawingCacheEnabled(false);

यह वास्तव में पूरे लेआउट को पकड़ लेता है लेकिन आप अपनी इच्छानुसार बदल सकते हैं।


2

यदि आपने एक बिटमैप ऑब्जेक्ट घोषित किया है और आप इसे प्रदर्शित करना चाहते हैं या इस बिटमैप ऑब्जेक्ट को संग्रहीत करना चाहते हैं। लेकिन पहले आपको किसी भी छवि को असाइन करना होगा, और आप बटन क्लिक इवेंट का उपयोग कर सकते हैं, यह कोड केवल यह प्रदर्शित करेगा कि बिटमैप ऑब्जेक्ट में ड्रा करने योग्य छवि को कैसे संग्रहीत किया जाए।

Bitmap contact_pic = BitmapFactory.decodeResource(
                           v.getContext().getResources(),
                           R.drawable.android_logo
                     );

अब आप इस बिटमैप ऑब्जेक्ट का उपयोग कर सकते हैं, चाहे आप इसे स्टोर करना चाहते हैं, या इसे गूगल मैप्स में उपयोग करना चाहते हैं, जबकि निश्चित अक्षांश और देशांतर पर एक तस्वीर खींचते हैं, या कुछ और का उपयोग करने के लिए


0

बस इस लाइन को बदलें

bm = BitmapFactory.decodeResource(null, R.id.image);

साथ में

Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.YourImageName);

मेरे कहने का मतलब है कि getResources के साथ बस शून्य मान बदलें (यदि आप किसी भी बटन या छवि दृश्य घटना में इस कोड का उपयोग करते हैं तो getReslicationContext () getResources () से पहले जोड़ें।


0

इस फ़ंक्शन का उपयोग करके आप इमेज बिटमैप प्राप्त कर सकते हैं। बस छवि url पास करें

 public Bitmap getBitmapFromURL(String strURL) {
      try {
        URL url = new URL(strURL);
        HttpURLConnection connection = (HttpURLConnection) url.openConnection();
        connection.setDoInput(true);
        connection.connect();
        InputStream input = connection.getInputStream();
        Bitmap myBitmap = BitmapFactory.decodeStream(input);
        return myBitmap;
      } catch (IOException e) {
        e.printStackTrace();
        return null;
      }
 }
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.