Como posso definir o tamanho da visualização da câmera para a taxa de proporção quadrada em um SurfaceView quadrado (como o Instagram)

Estou tentando desenvolver minha própria atividade de câmera, mas tenho um problema que não consigo resolver ...

O que eu quero, é algo muito semelhante ao instagram photo frame, e é isso que eu recebo:

Quando eu deveria conseguir algo assim:

e...

quando eu deveria ter algo como:

Eu acho que estou maanaging o SurfaceView e Camera preview bem, usando apenas

Camera.Parameters parameters = camera.getParameters();
camera.setDisplayOrientation(90);

e personalizado SurfaceView:

public class SquaredSurfaceView extends SurfaceView {

private int width;
private int height;

public SquaredSurfaceView(Context context) {
    super(context);
}

public SquaredSurfaceView(Context context, AttributeSet attrs) {
    super(context, attrs);
}

public SquaredSurfaceView(Context context, AttributeSet attrs, int defStyle) {
    super(context, attrs, defStyle);
}

@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
    super.onMeasure(widthMeasureSpec, heightMeasureSpec);
    width = MeasureSpec.getSize(widthMeasureSpec);
    height = width;
    setMeasuredDimension(width, width);
}

public int getViewWidth() {
    return width;
}

public int getViewHeight() {
    return height;
}

}

O que estou fazendo errado? :-(

questionAnswers(6)

yourAnswerToTheQuestion