I'm trying to add a text over a barcode. In the final stage I want to make the barcode height smaller, and put the text below the barcode, but I'm stuck to add the text. I tried to play with the X, Y beginning, but no luck. What am I missing?
MultiFormatWriter multiFormatWriter = new MultiFormatWriter();
try {
BitMatrix bitMatrix = multiFormatWriter.encode(finalLastID, BarcodeFormat.CODE_128, imageView.getWidth(), imageView.getHeight());
Bitmap bitmap = Bitmap.createBitmap(imageView.getWidth(), imageView.getHeight(), Bitmap.Config.RGB_565);
for (int i = 0; i < imageView.getWidth(); i++){
for (int j = 0; j < imageView.getHeight()-scriptTextHeight; j++){
bitmap.setPixel(i,j,bitMatrix.get(i,j)? Color.BLACK:Color.WHITE);
}
}
drawStringonBitmap(bitmap,"TEST", 0, 0, Color.RED, 60, 20, false, imageView.getWidth(), imageView.getHeight());
imageView.setImageBitmap(bitmap);
} catch (WriterException e) {
e.printStackTrace();
}
public static Bitmap drawStringonBitmap(Bitmap src, String string, int beginX, int beginY, int color, int alpha, int size, boolean underline, int width , int height) {
Bitmap result = Bitmap.createBitmap(width, height, src.getConfig());
Canvas canvas = new Canvas(result);
Paint paint = new Paint();
paint.setColor(color);
paint.setAlpha(alpha);
paint.setTextSize(size);
paint.setAntiAlias(true);
paint.setUnderlineText(underline);
canvas.drawBitmap(src, 0, 0, null);
canvas.drawText(string, beginX, beginY, paint);
return result;
}