public static int computeColumnHeight(int ncolumns, Point[] sizes, int totalHeight, int verticalMargin) { int averageHeight = ( totalHeight + sizes.length * verticalMargin ) / ncolumns; int requiredHeight = computeActualHeight(ncolumns, sizes, averageHeight, verticalMargin); if (averageHeight == requiredHeight) { return requiredHeight; } // Try making the columns shorter, repeat up to 10 times, usually one or two iterations will be sufficient for ( int i = 0; i < 10; i++ ) { int candidateHeight = computeActualHeight(ncolumns, sizes, requiredHeight - 1, verticalMargin); if ( candidateHeight >= requiredHeight ) { return requiredHeight; } requiredHeight = candidateHeight; } return requiredHeight; }
ncolumns = Math.min(ncolumns, maxNumColumns); int perColHeight = ColumnLayoutUtils.computeColumnHeight(ncolumns, sizes, cheight, verticalSpacing); int colHeight = 0; int[] heights = new int[ncolumns];
int perColHeight = ColumnLayoutUtils.computeColumnHeight(ncolumns, sizes, cheight, verticalSpacing);
int perColHeight = ColumnLayoutUtils.computeColumnHeight(nColumns, sizes, cheight, verticalSpacing); int colHeight = 0; int[] heights = new int[nColumns];
public static int computeColumnHeight(int ncolumns, Point[] sizes, int totalHeight, int verticalMargin) { int averageHeight = ( totalHeight + sizes.length * verticalMargin ) / ncolumns; int requiredHeight = computeActualHeight(ncolumns, sizes, averageHeight, verticalMargin); if (averageHeight == requiredHeight) { return requiredHeight; } // Try making the columns shorter, repeat up to 10 times, usually one or two iterations will be sufficient for ( int i = 0; i < 10; i++ ) { int candidateHeight = computeActualHeight(ncolumns, sizes, requiredHeight - 1, verticalMargin); if ( candidateHeight >= requiredHeight ) { return requiredHeight; } requiredHeight = candidateHeight; } return requiredHeight; }
int perColHeight = ColumnLayoutUtils.computeColumnHeight(nColumns, sizes, cheight, verticalSpacing);