çekilebilir kaynak görüntüsünü bitmap'e dönüştürme


172

Ben Notification.Builder.setLargeIcon(bitmap)bir bitmap görüntü alır kullanmaya çalışıyorum . Çekilebilir klasörümde kullanmak istediğim görüntü var, bu yüzden bunu bitmap'e nasıl dönüştürebilirim?

Yanıtlar:


406

Muhtemelen demek Notification.Builder.setLargeIcon(Bitmap)istiyorsun, değil mi? :)

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

Bu kaynak görüntüleri Android Bitmaps dönüştürmek için harika bir yöntemdir .


2
Neden "Düzenle" düğmesine basıp soruyu düzeltmiyorsunuz? (Gelecek için daha fazla öneri - Bunu zaten yaptım ... Yazım hatalarını eleştirmemek için cevabınızı düzenlemenizi öneririm. Bunu sizin için yapmıyorum.) Başka bir notta, + working answer :)
ArtOfWarfare

1
Bunun genel bir cevap olarak doğru olduğunu düşünmüyorum - en azından Android vektör çekmecelerini desteklemeye başladığından beri değil.
roberto tomás

çözümü uyguladıktan sonra bunu alıyorum ...... 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();

API 22 getResources().getDrawable()kullanımdan kaldırıldığı için aşağıdaki çözümü kullanabiliriz.

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

1
Çizilebilir bir türe çözümlenemediğini söylüyor

Merhaba @ 20Cents denediniz mi stackoverflow.com/questions/18218938/…
AndyW

Aldığınız bitmapDrawable için bir türe çözümlenemiyorsa, ctrl + shift + O tuşlarına basmanız yeterlidir. Şerefe!
portföy oluşturucu

Ne yazık ki bu şekilde benim app çöküyor!
Fahad Alduraibi

getDrawable kullanımdan kaldırıldı
Junior Mayhé

13
Bitmap bitmap = BitmapFactory.decodeResource(context.getResources(), R.drawable.my_drawable);

Contextmevcut olabilir Activity.


2
ve vektör çizilebilir için?
roberto tomás

9

İşte Android'de Çekilebilir kaynağı Bitmap'e dönüştürmenin başka bir yolu:

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

2
Sizinki AndyW çözümünden nasıl farklı? Bu aynı!
Fahad Alduraibi

6

Önce Bitmap Görüntüsü Oluştur

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

Şimdi Bildirim Oluşturucu Simgesi'nde bitmap ayarlayın ....

Notification.Builder.setLargeIcon(bmp);

0

In res/drawableklasöründe,

1. Yeni bir tane oluşturun Drawable Resources.

2. Dosya adını girin.

res/drawableKlasörün içinde yeni bir dosya oluşturulur .

Bu kodu yeni oluşturulan dosyanın içine ve ic_action_backçekilebilir dosya adınızla değiştirin.

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

Şimdi, Kaynak Kimliği ile kullanabilirsiniz R.id.filename.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.