Quando posso medir uma exibição pela primeira vez?

Então, eu tenho um pouco de confusão ao tentar definir o plano de fundo de uma exibição como ela é exibida. O código depende de saber a altura da exibição, então não posso chamá-lo deonCreate() ouonResume(), PorquegetHeight() retorna 0.onResume() parece ser o mais próximo que posso chegar. Onde devo colocar código como o abaixo para que o plano de fundo seja alterado após a exibição para o usuário?

    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);

questionAnswers(8)

yourAnswerToTheQuestion