[Java] Android - Dessiner un bitmap dans un canevas


Answers

Essayez le code suivant:

Paint paint = new Paint();
paint.setAntiAlias(true);
paint.setFilterBitmap(true);
paint.setDither(true);

canvas.drawBitmap(bitmap, x, y, paint);

=================

Vous pourriez aussi simplement faire référence à cette réponse .

Question

J'ai actuellement un jeu de labyrinthe qui dessine un carré de 5 x 5 (prend la largeur de l'écran et le divise uniformément). Puis, pour chacune de ces boîtes utilisant les coordonnées x et y, j'utilise drawRect, pour dessiner un fond coloré.

Le problème que je rencontre est que je dois maintenant dessiner une image dans ce même endroit, remplaçant ainsi le remplissage de couleur de fond ordinaire.

Voici le code que j'utilise actuellement pour dessiner (quelques exemples):

// these are all the variation of drawRect that I use
canvas.drawRect(x, y, (x + totalCellWidth), (y + totalCellHeight), green);
canvas.drawRect(x + 1, y, (x + totalCellWidth), (y + totalCellHeight), green);
canvas.drawRect(x, y + 1, (x + totalCellWidth), (y + totalCellHeight), green);

J'aurais alors aussi besoin de mettre en place une image de fond pour tous les autres carrés de ma toile. Ce fond aura des lignes noires 1px simples dessinées sur le dessus de celui-ci, le code actuel pour dessiner dans un fond gris.

background = new Paint();
background.setColor(bgColor);
canvas.drawRect(0, 0, width, height, background);

Pourriez-vous s'il vous plaît avis si cela est possible. Si oui, quelle est la meilleure façon de procéder, tout en essayant de minimiser l'utilisation de la mémoire et d'avoir 1 image qui va se dilater et se rétrécir pour remplir l'espace carré de relance (cela varie sur toutes les tailles d'écran largeur d'écran uniformément).