Como centralizar o PopupWindow?

Eu criei uma atividade na qual adiciono um botão que lança um pop-up quando é clicado. Aqui está o código do método showPopup ():

    private void showPopup() {
    LayoutInflater inflater = (LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

    View layout = inflater.inflate(R.layout.popup_layout, (ViewGroup) findViewById(R.id.popup_element), false);

    final PopupWindow pwindo = new PopupWindow(layout, LayoutParams.WRAP_CONTENT, LayoutParams.MATCH_PARENT, true);

    Button btnAgree = (Button) layout.findViewById(R.id.ok);
    btnAgree.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            pwindo.dismiss();
        }
    });

    pwindo.showAtLocation(layout, Gravity.CENTER, 0, 0);
    }
}

Eu centralizá-lo-ia vertical e orizzontally. Eu tentei várias maneiras que eu vejo aqui no SO, mas nenhuma funcionou. Por que eu sempre obtenho a janela pop-up na parte superior da tela?

questionAnswers(2)

yourAnswerToTheQuestion