web-dev-qa-db-fra.com

convertir une image de ressource pouvant être dessinée en bitmap

J'essaie d'utiliser la Notification.Builder.setLargeIcon(bitmap) qui prend une image bitmap. J'ai l'image que je veux utiliser dans mon dossier pouvant être dessiné, alors comment puis-je la convertir en bitmap?

166
tyczj

Vous voulez probablement dire Notification.Builder.setLargeIcon(Bitmap), non? :)

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

Il s'agit d'une excellente méthode pour convertir les images de ressources en Android Bitmaps.

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

Puisque l’API 22 getResources().getDrawable() est obsolète, nous pouvons utiliser la solution suivante.

Drawable vectorDrawable = VectorDrawableCompat.create(getResources(), R.drawable.logo,  getContext().getTheme());
Bitmap myLogo = ((BitmapDrawable) vectorDrawable).getBitmap();
43
AndyW
Bitmap bitmap = BitmapFactory.decodeResource(context.getResources(), R.drawable.my_drawable);

Context peut être votre Activity actuel.

13
aromero

Voici un autre moyen de convertir une ressource Drawable en Bitmap sous Android:

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

Créer d'abord une image bitmap

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

maintenant définir bitmap dans Notification Builder Icon ....

Notification.Builder.setLargeIcon(bmp);
6
Ravi Makvana

Dans le dossier res/drawable,

1. Créez un nouveau Drawable Resources.

2. Nom du fichier d'entrée.

Un nouveau fichier sera créé dans le dossier res/drawable.

Remplacez ce code dans le fichier nouvellement créé et remplacez ic_action_back par votre nom de fichier pouvant être dessiné.

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

Maintenant, vous pouvez l'utiliser avec l'ID de ressource, R.id.filename.

0