Je suppose que vous générez code qr comme ci-dessous:
QRCodeEncoder qrCodeEncoder = new QRCodeEncoder(code,null,
Contents.Type.TEXT,
BarcodeFormat.QR_CODE.toString(),
yourDimension);
la dimension de votre sortie sera fonction de votre code. Définissez votre dimension aussi bas que possible. Ainsi, vous pouvez trouver les positions exactes du code QR où vous voulez changer de couleur.
que d'obtenir vos pixels de bitmap avec:
int[] allpixels = new int[bitmap.getHeight() * bitmap.getWidth()];
bitmap.getPixels(allpixels, 0, bitmap.getWidth(), 0, 0, bitmap.getWidth(), bitmap.getHeight());
Et pixels couleur que vous voulez:
for (int i = 6; i < 9; i++) {
allpixels[i] = Color.Red; // your rgb color
}
Convertir dp à Px pour tous les appareils:
qrCodeDimension = dpToPx((int) getResources().getDimension(R.dimen.qr_dimen));
public static int dpToPx(int dp) {
return (int) (dp * Resources.getSystem().getDisplayMetrics().density);
}
Finaly définir votre pixels colorés en bitmap:
bitmap.setPixels(allpixels, 0, bitmap.getWidth(), 0, 0, bitmap.getWidth(), bitmap.getHeight());
return Bitmap.createScaledBitmap(bitmap, qrCodeDimension, qrCodeDimension, false);
Voici comment j'ai résolu le problème. J'espère que ça va t'aider.
avez-vous trouvé une solution? J'ai besoin d'exactement la même chose. – savepopulation