Hombre, asi por encima...
No entiendo por que crees que
Cita: int anchura = (dimension.width - login.getText().length()) / 2;
te ha de devolver la medida donde poner el label. Ahí mismo estás mezclando longitud de texto(número de letras) con pixels... No es coherente.
S!