बिटमैप में ड्रा करने योग्य संसाधन छवि को परिवर्तित करना


172

मैं का उपयोग करने की कोशिश कर रहा हूँ Notification.Builder.setLargeIcon(bitmap) उस बिटमैप छवि । मेरे पास मेरे ड्रॉ करने योग्य फ़ोल्डर में उपयोग की जाने वाली छवि है इसलिए मैं इसे बिटमैप में कैसे परिवर्तित करूं?

जवाबों:


406

आप शायद मतलब है Notification.Builder.setLargeIcon(Bitmap), है ना? :)

Bitmap largeIcon = BitmapFactory.decodeResource(getResources(), R.drawable.large_icon);
notBuilder.setLargeIcon(largeIcon);

यह एंड्रॉइड Bitmaps में संसाधन छवियों को परिवर्तित करने का एक शानदार तरीका है ।


2
क्यों नहीं "संपादित करें" बटन को हिट करें और प्रश्न को ठीक करें? (भविष्य के लिए एक सुझाव - मैंने पहले से ही इसके लिए यह किया था ... मैं आपके उत्तर को उनके टाइपो की आलोचना न करने के लिए संपादित करने का सुझाव दूंगा। मैं यह आपके लिए नहीं कर रहा हूं।) एक अन्य नोट पर, +1 करने के लिए। काम का जवाब :)
आर्टऑफवर्फ

1
मुझे नहीं लगता कि यह एक सामान्य उत्तर के रूप में सही है - कम से कम नहीं जब से एंड्रॉइड ने वेक्टर ड्रॉबल्स का समर्थन करना शुरू कर दिया है।
रोबर्टो टोमस

समाधान लागू करने के बाद मुझे यह मिल रहा है ...... E/CommitToConfigurationOperation: Malformed snapshot token (size): ... E/NotificationService: Not posting notification with icon==0: Notification(pri=0 contentView=null vibrate=null sound=content://settings/system/notification_sound defaults=0x0 flags=0x10 color=0x00000000 vis=PRIVATE) ... E/NotificationService: WARNING: In a future release this will crash the app:...
भूरू

44
Drawable myDrawable = getResources().getDrawable(R.drawable.logo);
Bitmap myLogo = ((BitmapDrawable) myDrawable).getBitmap();

चूंकि एपीआई 22 getResources().getDrawable()अपदस्थ है, इसलिए हम निम्नलिखित समाधान का उपयोग कर सकते हैं।

Drawable vectorDrawable = VectorDrawableCompat.create(getResources(), R.drawable.logo,  getContext().getTheme());
Bitmap myLogo = ((BitmapDrawable) vectorDrawable).getBitmap();

1
यह मुझे बताता है कि बिटमैप को एक प्रकार से हल नहीं किया जा सकता

हाय @ 20Cents आप की कोशिश की थी stackoverflow.com/questions/18218938/...
AndyW

यदि आप प्राप्त कर रहे हैं तो बस ctrl + Shift + O दबाएं, बिटमैप के लिए एक प्रकार से हल नहीं किया जा सकता है। चीयर्स!
portfoliobuilder

दुर्भाग्य से इस तरह से मेरा ऐप क्रैश हो गया!
फहद अल्दुरिबी

getDrawable को पदावनत किया जाता है
जूनियर मेहे


9

एंड्रॉइड में ड्राअवेबल संसाधन को बिटमैप में बदलने का एक और तरीका है:

Drawable drawable = getResources().getDrawable(R.drawable.input);
Bitmap bitmap = ((BitmapDrawable)drawable).getBitmap();

2
आपका AndyW समाधान कैसे अलग है? यह समान हे!
फहद अल्दुरिबी

6

सबसे पहले बिटमैप इमेज बनाएं

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

अब नोटिफिकेशन बिल्डर आइकन में बिटमैप सेट करें ...।

Notification.Builder.setLargeIcon(bmp);

0

में res/drawableफ़ोल्डर,

1. एक नया बनाएँ Drawable Resources

2। इनपुट फ़ाइल नाम।

के अंदर एक नई फ़ाइल बनाई जाएगी res/drawableफ़ोल्डर ।

इस कोड को नई बनाई गई फ़ाइल के अंदर बदलें और ic_action_backअपने ड्रा करने योग्य फ़ाइल नाम के साथ बदलें ।

<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
    android:src="@drawable/ic_action_back"
    android:tint="@color/color_primary_text" />

अब, आप, संसाधन आईडी के साथ उपयोग कर सकते हैं R.id.filename

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.