¿Cuándo puedo medir primero una vista?

Así que tengo un poco de confusión al tratar de establecer el fondo dibujable de una vista tal como se muestra. El código se basa en conocer la altura de la vista, por lo que no puedo llamarlo desdeonCreate() oonResume(), porquegetHeight() devuelve 0.onResume() parece ser lo más cerca que puedo llegar sin embargo. ¿Dónde debo poner código como el siguiente para que el fondo cambie al mostrarse al usuario?

    TextView tv = (TextView)findViewById(R.id.image_test);
    LayerDrawable ld = (LayerDrawable)tv.getBackground();
    int height = tv.getHeight(); //when to call this so as not to get 0?
    int topInset = height / 2;
    ld.setLayerInset(1, 0, topInset, 0, 0);
    tv.setBackgroundDrawable(ld);

Respuestas a la pregunta(8)

Su respuesta a la pregunta