Bonjour :D,
Je débute en programmation Android et afin d'optimiser un peu le code, on me demande, plutôt que d'utiliser une image par état (donc une image pour chaque rotation de 90°), je dois n'utiliser qu'une seule image que je fais pivoter 3 fois pour au final avoir les 4 états dont j'ai besoin.
J'ai donc comme image de départ ça:
et je suis sensé générer ces 3 autres états :
De base je charge toutes les tiles dans une map à l'aide de la fonction loadTile() en considérant que
1 tile = 1 png
loadTile(SNAKE_ANGLE_BAS_DROIT, r.getDrawable(R.drawable.snake_angle_bas_droit));
loadTile(SNAKE_ANGLE_BAS_GAUCHE, r.getDrawable(R.drawable.snake_angle_bas_gauche));
loadTile(SNAKE_ANGLE_HAUT_DROIT, r.getDrawable(R.drawable.snake_angle_haut_droit));
loadTile(SNAKE_ANGLE_HAUT_GAUCHE, r.getDrawable(R.drawable.snake_angle_haut_gauche));
Il faudrait du coup obtenir la même chose mais en ne partant que d'un seul fichier PNG.
j'ai cru comprendre que la fonction getDrawable() retournait un objet de type Drawable et que c'est cet objet que j'avais à pivoter.
N'y connaissant rien du tout (j'ai des bases en Java mais je ne connais pas du tout la 2D) j'ai tenté de faire une fonction rotateTile() en reprenant ce que j'avais par ci par là mais celle n'y ne fonctionne pas du tout
private Drawable rotateDrawable(Drawable dwb, int degree){
Bitmap bitmap = Bitmap.createBitmap(mTileSize, mTileSize, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
canvas.rotate(degree);
dwb.setBounds(0, 0, mTileSize, mTileSize);
dwb.draw(canvas);
return dwb;
}
Quelqu'un aurait-il une solution à mon petit soucis? 
Message édité le 21 novembre 2015 à 00:17:01 par MrGreez94