, когда я был в другом офисе, и в этом проекте у меня была похожая проблема, все функции выравнивания в библиотеке не работали. Но у меня есть хитрое решение сделать так, чтобы изображение логотипа стало центром.
Я рисую растровое изображение с белым или прозрачным разрешением и помещаю позицию ширины прямо в середину квитанции
public Bitmap createBitmap(Rect rectImage, int i, int j) {
Paint p = new Paint();
p.setStyle(Style.FILL_AND_STROKE);
p.setAntiAlias(true);
p.setFilterBitmap(true);
p.setDither(true);
p.setColor(Color.WHITE);
Bitmap bitmap = Bitmap.createBitmap(rectImage.width() * 2,
rectImage.height() * 2, Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(bitmap);
// c.drawColor(Color.RED);
c.drawRect(rectImage.left, rectImage.top, rectImage.right,
rectImage.bottom, p);
return bitmap;
}
Затем объедините это растровое изображение с вашим логотипом , используйте код, подобный этому (не этот код)
public static Bitmap mergeToPin(Bitmap left, Bitmap right) {
Bitmap result = Bitmap.createBitmap(left.getWidth(), left.getHeight(), left.getConfig());
Canvas canvas = new Canvas(result);
int widthleft = left.getWidth();
int widthright = right.getWidth();
canvas.drawBitmap(left, 0f, 0f, null);
canvas.drawBitmap(right, widthleft, 0f, null);
return result;
}
Как известно, размер чека можно прогнозировать. Таким образом, вы можете сделать статическое значение для ширины прозрачного изображения