J'ai une liste de bitmaps. Ce que je veux, c'est prendre ces bitmaps et, à l'aide de canvas, créer un nouveau bitmap avec des images réduites (c'est-à-dire les rendre minuscules) à partir de la liste de bitmaps que j'ai.
J'ai réussi à le faire, mais l'image est assez horrible à cause de la réduction d'échelle. J'ai essayé plusieurs choses, réglages, création de nouvelles toiles, etc.
La première solution simple ressemble à ceci (code ci-dessous), mais, comme je l'ai dit, les images sont affreuses.
public static Bitmap folderBitmap(Bitmap bitmap[]) {
Bitmap b = Bitmap.createBitmap(100, 100, Bitmap.Config.RGB_565);
Canvas c = new Canvas(b);
c.drawARGB(255, 255, 255, 255);
Paint paint = new Paint();
paint.setAntiAlias(false);
paint.setFilterBitmap(false);
paint.setDither(true);
c.drawBitmap(getBit(bitmap), 4, 4, paint);
c.drawBitmap(getBit(bitmap), 35, 4, paint);
c.drawBitmap(getBit(bitmap), 67, 4, paint);
c.drawBitmap(getBit(bitmap), 4, 35, null);
c.drawBitmap(getBit(bitmap), 35, 35, null);
c.drawBitmap(getBit(bitmap), 67, 35, null);
c.drawBitmap(getBit(bitmap), 4, 67, null);
c.drawBitmap(getBit(bitmap), 35, 67, null);
c.drawBitmap(getBit(bitmap), 67, 67, null);
return b;
}
private static Bitmap getBit(Bitmap[] b) {
Bitmap newBitmap = Bitmap.createScaledBitmap(b[getR()], 28, 28, false);
return newBitmap;
}
private static int getR() {
Random r = new Random();
int rint = r.nextInt(8);
return rint;
}
Par horrible, je veux dire qu'elles ont l'air pixelisées et pas nettes.