I found a work around for this using a Surface callback with a pre-set max for width and height:
@Override public void surfaceCreated(SurfaceHolder holder) { Rect rect = holder.getSurfaceFrame(); if (rect.width() > maxWidth || rect.height() > maxHeight) { holder.setFixedSize(maxWidth, maxHeight); } }