web-dev-qa-db-fra.com

Comment définir un bitmap à partir d'une ressource

Cela semble simple, j'essaie de définir une image bitmap, mais à partir des ressources, j'ai dans l'application dans le dossier pouvant être dessiné.

bm = BitmapFactory.decodeResource(null, R.id.image);

Est-ce correct?

269
Beginner

En supposant que vous appelez ceci dans une classe d'activité

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

Le premier paramètre, Ressources, est requis. Il est normalement possible de l'obtenir dans n'importe quel contexte (et sous-classes comme Activité).

720
xandy

Essaye ça

C'est de sdcard

ImageView image = (ImageView) findViewById(R.id.test_image);
Bitmap bMap = BitmapFactory.decodeFile("/sdcard/test2.png");
image.setImageBitmap(bMap);

C'est des ressources

Bitmap bMap = BitmapFactory.decodeResource(getResources(), R.drawable.icon);
32
Parag Chauhan

Si la ressource est affichée et est une vue, vous pouvez également la capturer. Comme une capture d'écran:

View rootView = ((View) findViewById(R.id.yourView)).getRootView();
rootView.setDrawingCacheEnabled(true);
rootView.layout(0, 0, rootView.getWidth(), rootView.getHeight());
rootView.buildDrawingCache();

Bitmap bm = Bitmap.createBitmap(rootView.getDrawingCache());

rootView.setDrawingCacheEnabled(false);

Cela occupe en fait toute la mise en page mais vous pouvez le modifier à votre guise.

7
trgraglia

Si vous avez déclaré un objet bitmap et que vous souhaitez l'afficher ou stocker cet objet bitmap. mais vous devez d’abord attribuer une image et utiliser l’événement de clic sur un bouton. Ce code ne fera que montrer que vous pouvez enregistrer l’image pouvant être dessinée dans un objet bitmap.

Bitmap contact_pic = BitmapFactory.decodeResource(v.getContext().getResources(), R.drawable.Android_logo);

Maintenant, vous pouvez utiliser cet objet bitmap, que vous souhaitiez le stocker, l'utiliser dans Google Maps tout en dessinant une photo à une latitude et une longitude fixes, ou utiliser un autre emplacement.

1
Pir Fahim Shah

J'ai trouvé cette question lorsque je voulais définir un bitmap sur ma vue. Pour cette raison, j'ai trouvé ce code plus utile:

myImgView.setImageDrawable(getResources().getDrawable(R.drawable.monkey));

De ici

0

il suffit de remplacer cette ligne

bm = BitmapFactory.decodeResource(null, R.id.image);

avec

Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.YourImageName);

Je veux dire simplement changer la valeur null avec getResources () Si vous utilisez ce code dans n’importe quel bouton ou événement de clic de la vue Image, ajoutez simplement getApplicationContext () avant getResources () ..

0
Ravi Makvana