conversão de imagem de recurso extraível em bitmap


172

Estou tentando usar o Notification.Builder.setLargeIcon(bitmap)que leva uma imagem de bitmap. Eu tenho a imagem que quero usar na minha pasta de desenho. Como convertê-la em bitmap?

Respostas:


406

Você provavelmente quer dizer Notification.Builder.setLargeIcon(Bitmap), certo? :)

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

Este é um ótimo método para converter imagens de recursos em Android Bitmaps.


2
Por que não clicar no botão "Editar" e corrigir a pergunta? (Mais uma sugestão para o futuro - eu já fiz isso para essa ... sugiro editar sua resposta para não criticar os erros de digitação. Não estou fazendo isso por você.) Em outra nota, +1 por ter um resposta de trabalho :)
ArtOfWarfare 18/10/12

1
Eu não acho que isso seja correto como uma resposta geral - pelo menos não desde que o Android começou a oferecer suporte a desenhos vetoriais.
roberto tomás

depois de implementar a solução, estou conseguindo ...... 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 26/09/16

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

Como a API 22 getResources().getDrawable()foi descontinuada, podemos usar a seguinte solução.

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

1
Ela me diz bitmapDrawable não pode ser resolvido para um tipo

Oi @ 20cents que você tentou stackoverflow.com/questions/18218938/...
AndyW

Basta pressionar ctrl + shift + O se você estiver recebendo não puder ser resolvido para um tipo de bitmapDrawable. Felicidades!
portfoliobuilder

Infelizmente, desta forma, trava meu aplicativo!
Fahad Alduraibi 16/02

O getDrawable está obsoleto
Junior Mayhé 8/17

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

Contextpode ser o seu atual Activity.


2
e para gavetas vetoriais?
roberto tomás

9

Aqui está outra maneira de converter o recurso Drawable em Bitmap no android:

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

2
Qual a diferença entre a sua e a solução AndyW? é o mesmo!
Fahad Alduraibi 16/02

6

Primeiro criar imagem de bitmap

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

agora defina bitmap no ícone do Notification Builder ....

Notification.Builder.setLargeIcon(bmp);

0

Na res/drawablepasta,

1. Crie um novo Drawable Resources.

2) Nome do arquivo de entrada.

Um novo arquivo será criado dentro do res/drawable pasta.

Substitua esse código dentro do arquivo recém-criado e substitua ic_action_backpelo nome do arquivo que você pode desenhar.

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

Agora, você pode usá-lo com o ID do recurso R.id.filename,.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.