Похоже, вам придется динамически отслеживать, сколько места на экране занимают кнопки, исходя из высоты и, возможно, ширины экрана. Чтобы получить размер экрана в пикселей , вы можете сделать что-то вроде
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int width = size.x;
int height = size.y;
или
DisplayMetrics displayMetrics = new DisplayMetrics();
activity.getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
// displayMetrics.heightPixels will give you the height
// displayMetrics.widthPixels will give you the width
Тогда вам просто нужно сравнить это с общим количеством пикселейиспользуется кнопками. Держите счетчик созданных кнопок. Поскольку вы знаете высоту пикселей на кнопку, просто умножьте ее на количество созданных кнопок, и вы узнаете, превышает ли она высоту.
Если вам нужен размер в dp , вы можете разделить значения из displayMetrics.heightPixels
или displayMetrics.widthPixels
на плотность
float dp = displayMetrics.heightPixels/displayMetrics.density