Установите border:none
для кнопки, выравнивание будет исправлено.
Если вам нужна граница для кнопки, у нас есть альтернативное решение. Вы можете установить box-sizing: content-box;
. Фактически это значение по умолчанию, но в этом случае оно не применяется. Поэтому вы добавляете его в css.
Когда я был в другом офисе, и в этом проекте у меня была похожая проблема, все функции выравнивания в библиотеке не работали. Но у меня есть хитрое решение сделать так, чтобы изображение логотипа стало центром. Я рисую растровое изображение с белым или прозрачным разрешением и помещаю положение ширины прямо в середине квитанции.
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;
}
Как вы знаете, размер квитанции можно предсказать. Таким образом, вы можете сделать статическое значение для ширины прозрачного изображения