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?

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.


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();

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.


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();

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);

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,.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.