Если вы знаете размер кнопок в пикселях, вы можете использовать DisplayMetrics, чтобы получить размеры экрана, а затем рассчитать, сколько кнопок поместится в выделенное пространство.
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
metrics.heightPixels дает абсолютную высоту в пикселях
metrics.ydpi дает точные физические пиксели на дюйм экрана
и metrics.density дают логическую плотность для масштабирования
см. Здесь: http://developer.android.com/reference/android/util/DisplayMetrics.html
тогда просто сделайте что-то вроде
do{
Button button=new Button(context);
button.setText("yada yada")
button.allYoursettings....
.
.
LinearLayout.LayoutParams p = new LinearLayout.LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
LinearLayout layout=(LinearLayout) findViewById(R.id.yourlayout);
layout.addView(button,p);
} while(havespaceleft);