Odierei resuscitare vecchi thread, ma questo è un problema a cui non si risponde correttamente e inoltre ho riscontrato questo problema da solo.
Ecco la parte lunga, se sei interessato solo alla risposta, scorri fino al codice:
android: gravity e android: layout_gravity funziona in modo diverso. Ecco un articolo che ho letto che mi ha aiutato.
GIST dell'articolo: la gravità influenza la vista dopo l'assegnazione di altezza / larghezza. Quindi il baricentro non influirà su una vista FILL_PARENT (pensala come margine automatico). layout_gravity center influirà sulla vista FILL_PARENT (pensala come pad automatico).
Fondamentalmente, android: layout_gravity NON PUO 'essere accesso a livello di codice, solo android: gravità. Nel caso del PO e nel mio caso, la risposta accettata non posiziona il pulsante verticalmente al centro.
Per migliorare la risposta di Karthi:
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
params.gravity = Gravity.CENTER;
button.setLayoutParams(params);
Link a LinearLayout.LayoutParams.
android: layout_gravity mostra il significato di "Nessun metodo correlato" che non è possibile accedere a livello di codice. Considerando che la gravità è un campo nella classe.