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?

tyczj
fonte

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.

poitroae
fonte
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();
AndyW
fonte
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.

aromero
fonte
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();
Ramkailash
fonte
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);
Ravi Makvana
fonte
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,.

Mohammedsalim Shivani
fonte