mengubah gambar sumber daya yang dapat digambar menjadi bitmap

172

Saya mencoba menggunakan Notification.Builder.setLargeIcon(bitmap)bitmap yang mengambil gambar. Saya memiliki gambar yang ingin saya gunakan di folder yang dapat digambar jadi bagaimana cara mengonversinya menjadi bitmap?

tyczj
sumber

Jawaban:

406

Anda mungkin berarti Notification.Builder.setLargeIcon(Bitmap), bukan? :)

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

Ini adalah metode yang bagus untuk mengkonversi gambar sumber daya ke Android Bitmap.

poitroae
sumber
2
Mengapa tidak menekan tombol "Edit" dan perbaiki pertanyaan? (Lebih banyak saran untuk masa depan - Saya sudah melakukannya untuk yang ini ... Saya sarankan mengedit jawaban Anda untuk tidak mengkritik kesalahan ketik mereka. Saya tidak melakukannya untuk Anda.) Pada catatan lain, +1 karena memiliki jawaban yang bekerja :)
ArtOfWarfare
1
Saya tidak berpikir ini benar sebagai jawaban umum - setidaknya tidak sejak Android mulai mendukung digambar vektor.
roberto tomás
setelah menerapkan solusi saya mendapatkan ini ...... 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:...
Bhuro
44
Drawable myDrawable = getResources().getDrawable(R.drawable.logo);
Bitmap myLogo = ((BitmapDrawable) myDrawable).getBitmap();

Karena API 22 getResources().getDrawable()sudah tidak digunakan lagi, maka kami dapat menggunakan solusi berikut.

Drawable vectorDrawable = VectorDrawableCompat.create(getResources(), R.drawable.logo,  getContext().getTheme());
Bitmap myLogo = ((BitmapDrawable) vectorDrawable).getBitmap();
AndyW
sumber
1
Ini memberitahu saya bahwa bitmapDrawable tidak dapat diatasi ke suatu tipe
Hai @ 20Cents Anda mencoba stackoverflow.com/questions/18218938/…
AndyW
Cukup tekan ctrl + shift + O jika Anda menerima tidak dapat diselesaikan ke jenis untuk bitmapDrawable. Bersulang!
portfoliobuilder
Sayangnya cara ini membuat aplikasi saya mogok!
Fahad Alduraibi
getDrawable sudah tidak digunakan lagi
Junior Mayhé
13
Bitmap bitmap = BitmapFactory.decodeResource(context.getResources(), R.drawable.my_drawable);

Contextbisa menjadi milikmu saat ini Activity.

aromero
sumber
2
dan untuk digambar vektor?
roberto tomás
9

Berikut ini cara lain untuk mengonversi sumber daya Drawable ke Bitmap di android:

Drawable drawable = getResources().getDrawable(R.drawable.input);
Bitmap bitmap = ((BitmapDrawable)drawable).getBitmap();
Ramkailash
sumber
2
Apa perbedaan Anda dengan solusi AndyW? sama!
Fahad Alduraibi
6

Pertama Buat Gambar Bitmap

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

sekarang tetapkan bitmap di Icon Notification Builder ....

Notification.Builder.setLargeIcon(bmp);
Ravi Makvana
sumber
0

Dalam res/drawablefolder,

1. Buat yang baru Drawable Resources.

2. Masukkan nama file.

File baru akan dibuat di dalam res/drawablefolder.

Ganti kode ini di dalam file yang baru dibuat dan ganti ic_action_backdengan nama file Anda yang dapat ditarik.

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

Sekarang, Anda dapat menggunakannya dengan ID Sumber Daya R.id.filename,.

Mohammedsalim Shivani
sumber